从python中的不同目录导入

时间:2011-01-28 10:05:20

标签: python import package

这是我的文件夹结构:

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

1 个答案:

答案 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

运行该模块