[英]How to create a deb package for a python project without setup.py
我发现的有关此主题的任何文档都提到构建 deb package 的“唯一”要求是具有正确的setup.py
(和requirements.txt
)。 例如,在dh-virtualenv 教程、 stdeb 文档和Debian 的 python 库样式指南中。
但是现在像诗歌这样的新(惊人)工具允许在没有任何setup.py
的情况下开发(并上传到 PyPI)python 项目(这个文件和包括requirements.txt
在内的其他几个文件都被pyproject.toml
替换)。 我相信flit也允许这样做。
我已经开发了一个由诗歌管理的 python 项目,并希望将它用于 Ubuntu/Debian。 我想,作为一种解决方法,我仍然可以编写一个setup.py
文件,该文件将从pyproject.toml
和一个requirements.txt
文件中获取它的值(使用来自poetry.lock
的值手工编写)。
但是,有没有办法在没有任何setup.py
文件的情况下做到这一点?
setuptools
和它所需的setup.py
文件,一直是 python 中事实上的打包标准最长的时间。 您提到的新 package 管理器是通过引入PEP 517
和PEP 518
(或阅读此主题以获得有关该主题的高级描述)启用的,它们提供了一种指定构建后端的标准化方法,而无需setup.py
(以及随之而来的鸡蛋问题,您已经需要setuptools
来正确解析它)。
反正一切还是很新鲜的,linux封装社区还没有赶上。 我发现最近没有关于 debian 包的讨论,但是rpm
方面在这里总结得很清楚。
因此,简短的回答是稍等片刻,谷歌debian packaging pep517 support
。
在此之前,您可以使用dephell
为您生成setup.py
作为解决方法:
dephell deps convert --from=poetry --to=setuppy
并且,在构建过程中,告诉您的pyproject.tom
您计划使用setuptools
来构建而不是poetry
:
[build-system]
requires = ["setuptools >= 40.6.0", "wheel"]
build-backend = "setuptools.build_meta"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.