2021年的Python库打包

2024-05-03 14:37:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我想提供一些代码作为版本化的常规Python包^ {CD1>}(一个LIB,可能包着C++ S/DLL二进制文件)。

[…目前在一家公司的intern git中使用其CI/CD工作流。这里不需要Docker,但压缩版本的发行版应该在pypi.org(如central repo)中提供之前再次进行系统测试,这不在我的问题范围之内。]

import this中引用最多的一行可能是:

There should be one-- and preferably only one --obvious way to do it

不幸的是,Python打包机构(PyPA)并没有暗示这样一种首选方式,比如项目布局、如何打包等

有些项目遵循pyproject.toml方法

在他们的项目根中,你可以看到

  • /docs(或类似命名)
  • /tests(或类似命名)

对于实际的包代码(安装后通过import foo使用),有两种方法

  • /foo直接在项目根目录中,或
  • /src/foo我更喜欢它的可读性和一致性(需要额外的子目录)

有些项目区分requirements.txt(对于类似的测试、文档、开发),有些项目则不区分

我读到了,所以我的问题是:

这是当前(2021年初)的发展方向吗:

在这个主题上,你会考虑像python-poetry/poetrypypa/setuptools_scm和其他当前github模板/脚手架/骨架/蓝图项目的最佳想法吗? 还不是最好的做法吗

还是我错过了什么