python - 如何构建我的 Python 包?

标签 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

我不确定这是否真的重要,但我想以“正确的方式”做事。

最佳答案

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

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

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

关于python - 如何构建我的 Python 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17090139/

相关文章:

python - 绘制双曲面

python - XlsxWriter 覆盖条形图

python - 有没有一种干净的方法可以在 Python 中编写多行字符串?

python - 使用 SQLAlchemy、SQLite 比较日期

python - python 中哪些变量是在进程之间共享的而不是共享的?

python - 如何打印列表的值?

Python netifaces 模块 Windows 安装

python - 有比 Fixtures 更好的工具来填充 Django 数据库吗?

python - 如何将 float 舍入为缩放整数?

python - 如何使用 `fixture` 和 `parametrize` 为 pytest 测试设置环境变量