发条动态总结一下今天在python packaging方面踩的坑
1. setup.py 和 setup.cfg
后者是前者的简易形式。主要内容存放在后者,前者只是个壳。
这两个文件是在
python setup.py install
这样的命令下使用的
不涉及pip
setup.cfg 的官方教程
https://setuptools.pypa.io/en/latest/userguide/declarative_config.html
2. pyproject.toml
该文件是近几年引入的更完善的包管理机制
如果你使用pip,例如,你需要向pypi发布包,在github的自动化工作流里,按照pyproject.toml进行项目安装。或者下载完源码后,使用 pip install . 命令安装。
这两种情况下:
pyproject.toml override setup.cfg
https://setuptools.pypa.io/en/latest/userguide/pyproject_config.html
===============================================
事实上,很多人在讨论,两个配置文件,功能一致,能否只保留 pyproject.toml
我任务,为了能同时使用pip和python setup.py命令安装,我们需要整理 setup.cfg 和 pyproject.toml 两个文件。这并不矛盾。每个配置文件都有其适用的场景。
注意:如果你使用了setuptools_scm。默认情况下,pypi 的 source distribution 是项目里的所有文件。为了能在发布时跳过一些文件,我们可以在根目录上添加MANIFEST.in,这会override setuptools_scm
https://packaging.python.org/en/latest/guides/using-manifest-in/
- 复制链接
- 举报