我有 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
上。