我想提供一些代码作为版本化的常规 Python 包 foo
(一个 lib,可能包装 C++ so / dll 二进制文件)。
[...目前在公司实习生 git 中使用其 CI/CD 工作流程。此处不需要 Docker,但应再次对压缩和版本化版本进行系统测试,然后再在 pypi.org 中提供,如中央存储库——只是提一下,而不是我在这里的问题范围。]< /p>
import this
中引用最多的一行可能是:
There should be one-- and preferably only one --obvious way to do it
。
不幸的是,Python Packaging Authority (PyPA) 并没有暗示这种首选方式,例如项目布局、如何打包等。
有些项目遵循 pyproject.toml 方法
在他们的项目根目录中,您通常会看到
/docs
(或类似的命名)/tests
(或类似的命名)。对于实际的包代码(安装后通过 import foo
使用)有两种方法
/foo
直接在项目根目录中,或/src/foo
我更喜欢它的可读性和一致性(需要额外的子目录)有些项目区分 requirements.txt
(例如测试、文档、开发),有些则不区分。
我阅读 https://meta.stackexchange.com/help/dont-ask,所以我的问题是:
这是当前(2021 年初)要走的路吗:
从 python-poetry/poetry
、pypa/setuptools_scm
和其他当前 github 模板/脚手架/骨架/蓝图等项目的最佳创意中获取主题?
还没有真正整合最佳实践吗?
或者我错过了什么?