如何在python中管理相对导入?

时间:2017-01-31 21:58:21

标签: python

我有一个具有以下结构的代码:

  mainDir/
         /foo/ __init__.py
         /foo/foo.py  (i am importing bar here)
         /__init__.py
         /bar.py

现在,foo.py的导入类似于

from ..bar import *

在mainDir中我试图运行:python -m foo.foo。但我得到了:

  

ValueError:尝试导入栏时尝试在foo.py中的toplevel包之外进行相对导入

我不是在寻找sys.path解决方案,而是在创建模块?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用绝对导入:

sed

相对进口必须保留在包裹内。你不能完全退出包层次,并导入一个带有相对导入的顶层模块。