我有这个包结构:
root/package/__init__.py
root/package/main.py
root/package/subpackage/__init__.py
root/package/subpackage/script1.py
root/package/subpackage/script2.py
然后在main.py中我有from package.subpackage import script1
在script1中我有:
import script2
def do_smt():
script2.do_smt()
因此,当我运行调用main.py
的{{1}}时,我会从第script1.do_smt()
行的script1获得ImportError
。
我已经设置了我的PYTHONPATH = .... / root /
我错过了什么吗?
由于
更新 当我在python 2中尝试上面的设置时,它工作得很好。所以这是一个与python3相关的错误。我正在运行python 3.4
答案 0 :(得分:0)
在Python 3中你可以做到
from .script2 import * #1
from package.subpackage.script2 import * #2
from package.subpackage import script2 #3
from . import script2 #4
相对进口似乎需要更明确。