我发现的有关该主题的任何文档都提到构建deb软件包的“唯一”要求是拥有正确的setup.py
(和requirements.txt
)。例如,在dh-virtualenv教程,stdeb文档和Debian的python库风格指南中。
但是,如今,新的(令人惊奇的)工具(例如诗歌)允许开发任何项目setup.py
(并将该文件和其他几个文件requirements.txt
全部替换为pyproject.toml
)的python项目(并将其上传到PyPI )。我相信flit也允许这样做。
我开发了一个由诗歌管理的python项目,并希望将其打包为Ubuntu / Debian。我想,作为一种变通办法,我仍然可以编写一个setup.py
文件,该文件将从中获取其值,pyproject.toml
并requirements.txt
编写一个文件(使用中的值手动编写poetry.lock
)。
但是,有没有办法在没有任何setup.py
文件的情况下执行此操作吗?
setuptools
,以及setup.py
它所需的文件,一直以来都是python中的事实上的打包标准。您提到的新程序包管理器是通过引入PEP 517
和PEP 518
(或阅读该程序包以获得有关该主题的高级描述)而启用的,它们提供了一种标准化的方式来指定构建后端,而无需setup.py
(和随后的hen-egg问题,您已经需要setuptools
正确解析它)。
无论如何,这一切仍然很新鲜,并且Linux打包社区还没有赶上来。我发现关于Debian软件包最近没有讨论,但rpm
边总结起来整齐地在这里。
因此,简短的答案是稍等片刻,然后不时搜索Google 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"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句