繁体   English   中英

如何在没有 setup.py 的情况下为 python 项目创建 deb package

[英]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 517PEP 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM