zez*_*llo 15 python packaging deb setup.py python-poetry
我发现的有关此主题的任何文档都提到构建 deb 包的“唯一”要求是拥有正确的setup.py(和requirements.txt)。例如,在dh-virtualenv 教程、stdeb 文档和Debian 的 python 库风格指南中。
但现在新的(令人惊奇的)工具,如诗,允许开发(并上传到 PyPI)Python 项目,而无需任何setup.py(此文件和其他几个文件,包括requirements.txt全部被替换pyproject.toml)。我相信flit也允许这样做。
我开发了一个由诗歌管理的 python 项目,并想将其打包到 Ubuntu/Debian 中。我想,作为一种解决方法,我仍然可以编写一个从和 一个文件setup.py中获取其值的文件(使用来自 的值手动编写)。pyproject.tomlrequirements.txtpoetry.lock
但是,有没有办法在没有任何文件的情况下做到这一点setup.py?
Arn*_*rne 10
setuptools及其setup.py所需的文件,长期以来一直是 Python 中事实上的打包标准。您提到的新包管理器是通过引入 和 (或阅读此内容以获取有关该主题的高级描述)来启用的PEP 517,PEP 518它提供了一种指定构建后端的标准化方法,而无需(setup.py以及随后的母鸡蛋您已经需要正确解析它的问题setuptools,但可能还需要指定您想要构建的 setuptools 版本)。
不管怎样,这一切都还很新鲜,Linux 打包社区还没有完全跟上。我在 debian bug tracker 上找到了这个讨论,并且侧面在这里rpm简洁地总结了它。
简短的答案是等待一段时间,直到工具链赶上新标准,并debian packaging pep517 support时不时地谷歌一下。
作为 -build 包的具体解决方法poetry,您可以使用dephell生成setup.py和poetry来生成requirements.txt以便您继续使用旧版工具:
dephell deps convert --from=poetry --to=setuppy
poetry export -f requirements.txt -o requirements.txt
Run Code Online (Sandbox Code Playgroud)
并且,在构建过程中,告诉您pyproject.tom您计划用于setuptools构建而不是poetry:
[build-system]
requires = ["setuptools >= 40.6.0", "wheel"]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3123 次 |
| 最近记录: |