似乎这里已经有很多关于python 3中相对导入的问题,但是经过许多讨论之后,我仍然找不到我问题的答案。所以这是问题。
我有一个如下所示的包裹
package/
__init__.py
A/
__init__.py
foo.py
test_A/
__init__.py
test.py
我在test.py中只有一行:
from ..A import foo
现在,我在的文件夹中package
,然后运行
python -m test_A.test
我收到消息
"ValueError: attempted relative import beyond top-level package"
但是如果我在的父文件夹中package
,则运行:
cd ..
python -m package.test_A.test
一切安好。
现在我的问题是:
当我位于的文件夹中时package
,test_A.test
根据我的理解,我在test_A子软件包中运行模块,原因是,该模块..A
仅上升了一层(仍位于该package
文件夹中),为什么它给出消息说beyond top-level package
。究竟是什么原因导致此错误消息?