我的大部分代码都在project.py中,需要第二个文件,otherfile.py。目前我只是将它们安装为具有相同setup.py
的两个独立模块(带有py_modules变量),但我认为自从project.py正在增长以来我正在适当地打包时间可能需要进一步分解。
用户只需要与project.py中的某些类和函数进行交互,因此为了保持兼容性,我想使用以下结构:
project/
__init__.py # (renamed from project.py)
otherfile.py
但我已经知道__init__.py
应该几乎为空。另一种选择是:
project/
__init__.py
project.py
otherfile.py
并将用户可以看到的project.py
中的所有内容导入__init__.py
,因为我想避免为用户添加额外的命名空间:
import project.project
我不确定这是否真的重要,但我想做一些事情' The Right-Way'。
答案 0 :(得分:2)
您可以使用第二种结构,但在__init__.py
中,只需要...
from .project import PublicClass1
from .project import PublicClass2
from .project import PUBLIC_CONSTANT_A
...
基本上,只在__init__.py
中导入您实际想要公开的内容,同时保持__init__.py
大部分没有代码逻辑。