__init__.py基本上是导入包的必需品

时间:2017-04-30 12:35:50

标签: python python-2.7 python-import

from distutils import tests

即使在distutils / tests中没有__init__.py,这似乎也没有引发任何错误。

我的理解是,对于要导入的包或子包,__init__.py基本上是必需的

1 个答案:

答案 0 :(得分:1)

这在Python 3.2中显然有所改变。在setuptools documentation中 我们发现:

Anyway, find_packages() walks the target directory, filtering by inclusion         patterns, and finds Python packages (any directory). On Python 3.2 and earlier, packages are only recognized if they include an __init__.py file. Finally, exclusion patterns are applied to 

但是,在Python 3.6 documentation中,我们发现仍然需要 init .py。

我的理解是当前行为接受sys.path上的任何目录,其中包含.py文件。但是,我正在努力挖掘官方的东西。