我如何构建我的Python包?

时间:2013-06-13 14:49:51

标签: python

我的大部分代码都在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'。

1 个答案:

答案 0 :(得分:2)

您可以使用第二种结构,但在__init__.py中,只需要...

from .project import PublicClass1
from .project import PublicClass2
from .project import PUBLIC_CONSTANT_A
...

基本上,只在__init__.py中导入您实际想要公开的内容,同时保持__init__.py大部分没有代码逻辑。