在Python中从不同目录导入
这是我的文件夹结构:
src/
__init__py
Lowlevel/
__init__.py
ModuleToCheck.Py
Test/
__init__.py
ModuleToCheck_test.py
(__init__.py
是空文件)
现在我想在 ModuleToCheck_test.py
中导入 ModuleToCheck.py
我该怎么做才能不修改 sys.path
呢?
更新:
from ..Lowlevel import ModuleToCheck
结果是:
src$ python Test/ModuleToCheck_test.py
Traceback (most recent call last):
File "Test/ModuleToCheck_test.py", line 6, in <module>
from ..Lowlevel import ModuleToCheck
ValueError: Attempted relative import in non-package
1 个回答
3
以下内容来自 http://docs.python.org/tutorial/modules.html#intra-package-references
请注意,显式和隐式的相对导入都是基于当前模块的名称。因为主模块的名称总是 "
__main__
",所以如果你想把某个模块作为Python应用的主模块使用,最好使用绝对导入。
你正在把模块 ModuleToCheck_test.py
当作主模块来运行,所以出现了异常。
一个解决办法是在你的 src
目录下创建一个 test.py
模块,内容如下:
import Test.ModuleToCheck_test
然后你可以通过 python test.py
来运行这个模块。