簡體   English   中英

是不是棄用了`setup.cfg`?

[英]Is `setup.cfg` deprecated?

這對我來說並不完全清楚, setup.cfg的狀態是setup.cfg 我正在尋找關於PEP 508環境標記的其他問題的解決方案,我變得非常困惑。

對我而言,似乎setup.cfg是對setup.py的改進,因為它是聲明性的,不涉及運行任意代碼以使包可安裝,使得分發惡意Python包更加困難,使得運行Python包注冊表等更容易。

因此, setuptools文檔中 ,提到setuptools在30.3.0 (8 Dec 2016)版本中獲得了對setup.cfg的支持,這是最新版本。 所以,這必須是一件新事物,對吧?

不完全的。 distutils長期以來一直支持setup.cfg ,至少從2.6開始。 已經9年了。

同時, wheel文檔中 ,有人說setup.cfg現在已被棄用,並且最好通過extras_require參數提供環境標記。 它提到了setuptools,所以它不是關於setup.cfg可能已棄用的distutils風味。

那么,究竟發生了什么? 是不贊成setup.cfg ,還是最近的做事方式?

不, setup.cfg它不被棄用,你提到的文檔有誤導性。

有一些嚴重的原因,比如安全性,因為setup.py需要執行,這是擺脫它的主要原因。

這是額外的骯臟技巧:

[options.extras_require]
pdf = ReportLab>=1.2; RXP
rest = docutils>=0.3; pack ==1.1, ==1.3

我想補充幾點關於最近發展的說明:

PEP 518仍然處於臨時狀態,但我將其解釋為使用pyproject.toml而不是setup.cfg的邀請。 引自PEP:

setup.cfg使用setup.cfg作為一般格式有兩個問題。 一個是它們是.ini文件,它們存在上面的configparser討論中提到的問題。 另一個是該文件的模式從未被嚴格定義,因此不知道哪種格式可以安全地使用,而不會混淆setuptools安裝。

來自black的文檔

PEP 518pyproject.toml定義為用於存儲Python項目的構建系統需求的配置文件。 借助PoetryFlit等工具,它可以完全取代對setup.pysetup.cfg文件的需求。

pip 19.0實現了PEP 517 ,允許項目通過pyproject.toml指定構建后端。

setuptools有一個標題為“ 使用pyproject.toml合並setup.cfg規范並棄用setup.py和setup.cfg ”的開放性問題。 然而, setuptools家伙還沒有決定這一點。 有關如何進行的公開討論

免責聲明:我覺得自己完全迷失在Python的包裝叢林中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM