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