[英]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 518將
pyproject.toml
定義為用於存儲Python項目的構建系統需求的配置文件。 借助Poetry或Flit等工具,它可以完全取代對setup.py
和setup.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.