【发布时间】:2011-04-06 17:27:43
【问题描述】:
在 Python 中使用相对导入有一个缺点,您将无法再将模块作为独立模块运行,因为您会遇到异常:ValueError: Attempted relative import in non-package
# /test.py: just a sample file importing foo module
import foo
...
# /foo/foo.py:
from . import bar
...
if __name__ == "__main__":
pass
# /foo/bar.py: a submodule of foo, used by foo.py
from . import foo
...
if __name__ == "__main__":
pass
我应该如何修改示例代码以便能够执行所有:test.py、foo.py 和bar.py
我正在寻找适用于 python 2.6+(包括 3.x)的解决方案。
【问题讨论】:
-
谢谢,不幸的是我知道这个旧线程,但我没有找到解决问题的方法。到目前为止,我只观察到很多人抱怨这个。对于这个问题,我们需要一个明确的解决方案/示例。
-
注意:投票最多的答案是第二个。
标签: python module packages python-module python-import