子包中的导入模块出错

时间:2014-11-02 21:28:35

标签: python-3.x python-import

我有这个包结构:

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

1 个答案:

答案 0 :(得分:0)

在Python 3中你可以做到

from .script2 import *                      #1
from package.subpackage.script2 import *    #2
from package.subpackage import script2      #3
from . import script2                       #4

相对进口似乎需要更明确。