如何构造Python包?
我的大部分代码都在project.py中,它需要第二个文件otherfile.py。目前,我只是将它们作为两个单独的模块安装,使用相同的如何构造Python包?,python,Python,我的大部分代码都在project.py中,它需要第二个文件otherfile.py。目前,我只是将它们作为两个单独的模块安装,使用相同的setup.py(使用py_modules变量),但我认为现在是适当打包的时候了,因为project.py正在增长,我可能需要进一步拆分它 用户只需要与project.py中的某些类和函数进行交互,因此为了保持兼容性,我希望使用以下结构: project/ __init__.py # (renamed from project.py) othe
setup.py
(使用py_modules变量),但我认为现在是适当打包的时候了,因为project.py正在增长,我可能需要进一步拆分它
用户只需要与project.py中的某些类和函数进行交互,因此为了保持兼容性,我希望使用以下结构:
project/
__init__.py # (renamed from project.py)
otherfile.py
然而,我读到,\uuu init\uuuuuu.py
应该保持几乎为空。另一种选择是:
project/
__init__.py
project.py
otherfile.py
要从project.py
导入用户可以在\uuuu init\uuuu.py
中看到的所有内容,因为我希望避免为用户添加额外的名称空间:
import project.project
我不确定这是否真的重要,但我想以“正确的方式”做事。您可以使用第二种结构,但在您的
\uuu init\uuuuuuuuy.py
中,只需
from .project import PublicClass1
from .project import PublicClass2
from .project import PUBLIC_CONSTANT_A
...
基本上,只在\uuuu init\uuuuuuuuuuuupy.py
中导入您真正想要公开的内容,同时保持\uuuuuuuuuuuuuuuuuuuuuuuupy.py
基本上没有代码逻辑。我发现这很有帮助;那篇有用的文章。