簡體   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