“import pkg.module”在2.7中的pkg / __ init.py__中是否等同于“import module”,而在3.5中是不是正确的?

时间:2016-03-24 11:15:07

标签: python python-2.7 python-3.x

我有以下文件:

pkg/__init_.py
pkg/module.py

现在,在pkg/__init__.py中,如何导入module

是吗

import pkg.module

import module

是不是,在Python 2.7中,两种方法都有效,而Python 3.x需要第一种方法?

1 个答案:

答案 0 :(得分:2)

您的假设基本上是正确的。

如果模块搜索路径(module)中有一个名为sys.path的模块,那么第二种方法可能无法在您实际想要导入的模块之前使用。这就是为什么Python 3转向绝对导入,使导入更安全,更可预测。

可以将Python 2.7导入更改为在模块顶部使用from __future__ import absolute_import的linke Python 3。

两个Python版本都允许在包中进行显式的相对导入:

from . import module