我有以下文件:
pkg/__init_.py
pkg/module.py
现在,在pkg/__init__.py
中,如何导入module
?
是吗
import pkg.module
或
import module
是不是,在Python 2.7中,两种方法都有效,而Python 3.x需要第一种方法?
答案 0 :(得分:2)
您的假设基本上是正确的。
如果模块搜索路径(module
)中有一个名为sys.path
的模块,那么第二种方法可能无法在您实际想要导入的模块之前使用。这就是为什么Python 3转向绝对导入,使导入更安全,更可预测。
可以将Python 2.7导入更改为在模块顶部使用from __future__ import absolute_import
的linke Python 3。
两个Python版本都允许在包中进行显式的相对导入:
from . import module