gpt4 book ai didi

Python 相对导入无法从命令行运行并给出 ValueError

转载 作者:行者123 更新时间:2023-12-01 05:45:59 25 4
gpt4 key购买 nike

我的目录结构如下

microblog/__init__.py
urls.py
views.py
wsgi.py
settings/__init__.py
testing.py
base.py
local.py

在testing.py中我有一个相对导入

from .base import *
...
...more code

当我尝试使用 microblog/settings 目录中的命令行运行testing.py 时 python 测试.py

from .base import *
ValueError: Attempted relative import in non-package

为什么这不起作用。设置目录是一个带有 init.py 的有效包。仅当我更改

时,我不会从命令行收到 ValueError
from .base import *

from base import *

我试图理解为什么当我从命令行运行带有相对导入的“testing.py”包时,相对本地导入失败并给出 ValueError 。

最佳答案

icyrock在this post中的回答准确地澄清了我对 python“repl”的不理解。

运行时的目录microblog/settings

python testing.py

它实际上将测试放在“main”包中,并且它不知道测试是“settings”包的一部分。相反,使用此方法将“testing.py”作为模块作为其正常包层次结构的一部分运行

python -m microblog.settings.testing 

运行它时不会出现任何 ValueError,因为现在 python 知道“testing”是包“settings”的一部分,其中相对本地导入“from .base import *”非常有意义。

关于Python 相对导入无法从命令行运行并给出 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com