这是我的文件夹结构:
src/
__init__py
Lowlevel/
__init__.py
ModuleToCheck.Py
Test/
__init__.py
ModuleToCheck_test.py
(__init__.py
是空文件)
现在我要在ModuleToCheck.py
ModuleToCheck_test.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
答案 0 :(得分:3)
以下内容来自http://docs.python.org/tutorial/modules.html#intra-package-references
请注意显式和隐式 相对导入基于名称 目前的模块。既然这个名字 主要模块总是如此 “
__main__
”,拟使用的模块 作为Python的主要模块 应用程序应始终使用绝对 进口。
您正在运行模块ModuleToCheck_test.py
作为主模块,因此例外。
一种解决方案是在test.py
目录中创建一个src
模块,其中包含以下内容:
import Test.ModuleToCheck_test
然后,您可以使用python test.py