python - 从包中导入子包不工作?

ola*_*ndo 2 python import package

我有以下文件:

pack/__init__.py
pack/subpack/__init.__py
pack/subpack/mod2.py
Run Code Online (Sandbox Code Playgroud)

以下代码在最后一行失败:

from pack import * #should import everything
print subpack      #NameError: name 'subpack' is not defined
Run Code Online (Sandbox Code Playgroud)

我希望导入子包 - 为什么会有差异,我怎样才能克服它?重要:通过"克服"我的意思是能够参考而subpack无需一直写pack.subpack.

Sve*_*ach 8

你需要添加

__all__ = ["mod1", "subpack"]
Run Code Online (Sandbox Code Playgroud)

pack/__init__.py.没有这条线,mod1也不会被导入,所以我想知道那里发生了什么.另请参阅Guido教程中相关部分.