组织 PIP 包的正确方法是什么



我有 4 个文件:main.py, helper.py, clf.pkl, and tests.py.

Main.py有核心类。它需要为某些方法导入helper.py,为数据导入clf.pkl

对于

包含 4 个文件的 Python 库,我可以拥有的最小结构是什么?

我会使用一个包来保存你的文件,以及一个pyproject.toml来描述你的项目,如下所示:

.
├── pyproject.toml
├── MANIFEST.in
├── your_package_name
│   ├── __main__.py
│   ├── helper.py
│   └── __init__.py
└── tests
    └── tests.py

__init__.py文件中至少写入:

"""A short description of your project"""
__version__ = "0.0.1"

(相应地更改说明和版本(。

要创建pyproject.toml您可以使用flit init

pip install flit
flit init

将入口点命名为包中的__main__.py,以便可以使用以下命令运行它:

python -m your_package_name

(是的,在其中使用 if __name__ == "__main__": 仍然是一个好主意,因此如果需要,您可以从测试中导入 main(。

您可以使用以下方法从__main__.py导入helper.py

from your_package_name import helper

或:

from . import helper

(我更喜欢第一个,但我不知道是否有人口普查。

要使clf.pkl包含在包中,您需要创建一个包含以下内容的MANIFEST.in

include your_package_name/clf.pkl

您的 pkl 可在以下位置获得:

os.path.join(os.path.dirname(os.path.abspath(__file__)), "clf.pkl")

要测试它,请使用flit install -s并将其发布在 PyPI flit publish 上。

相关内容

最新更新