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

时间:2019-07-21 20:32:26

标签: python-3.x

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

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

一个带有4个文件的Python库的最小结构是什么?

1 个答案:

答案 0 :(得分:0)

我将使用package来保存文件,并使用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__":仍然是一个好主意,因此您可以根据需要从测试中导入主要)。

您可以使用以下方法从helper.py导入__main__.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上。

相关问题