【问题标题】:Import from different directories in python从python中的不同目录导入
【发布时间】:2011-01-28 10:05:19
【问题描述】:

这是我的文件夹结构:

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

【问题讨论】:

标签: python import package


【解决方案1】:

以下来自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 运行该模块

【讨论】:

  • +1,这是 python 中唯一在顶部位置有入口点的理智方式,这样 src 下的所有内容都将在 pythonpath 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多