摘譯 The alpha dependency resolver: context and how to test,最後更新於 2020-04-21 03:14 UTC+8。
pip 20.1 中包含了一個 alpha 版本的依賴解析器全新實作。這個功能尚不穩定,不適合日常使用。本文將根據我們已知的測試需求滾動更新;若有任何回饋,請使用這個表單。
如之前公告,pip 開發團隊正在實作一個新的依賴解析器。我們在即日起釋出的新版本 pip 中包含了一個初步版本(alpha),讓使用者進行測試。
由於該功能預設關閉,要進行測試,需要在使用 pip 時加上 --unstable-feature=resolver
。正常的 pip 使用情境不會受到新的解析器影響。
我們已經實作了大部分 pip 的基本安裝功能。有 bug 算是意料中事,但我們預期最單純的 pip install
情境應該可以正常使用新的解析器。
已知尚未實作的功能:
- 更新與
--upgrade-strategy
不會有任何作用。 - 多數的指令列開關(例如
--no-binary
)很可能無效。 - 報錯介面非常簡陋。如果解析器無法找到可安裝的套件組合,很可能會給你一長串的 Python 錯誤。
試用!我們有越多回饋,就有越大機會確保最終成品的品質。(不過千萬不要在正式環境測試,東西壞了我們不負責。)
我們特別希望得到以下意見:
- 解析結果不如預期。希望這類問題不要太多,不過如果有,就要盡早解決。
- 解析器產生錯誤,但你覺得它應該要能夠推導出結果。
- 解析器拒絕你想安裝的套件組合,但你需要更多資訊知道問題出在哪裡。
- 新解析器解決了現有解析器無法辦到、或者你需要額外 workaround 的狀況。告訴我們!
我們特別希望測試的環境:
- Windows
- PyPy
- Python 3.9 測試版
- 從 Git、Mercurisl、Subversion、Bazaar 安裝
- 安裝本地目錄路徑
- 使用 contraints 檔
- 安裝複數個 requirements 檔
- Hash 檢查模式
套件組合:
- tensorflow
- hacking
- pycodestyle
- pandas
- tablib
- 同時安裝 elasticsearch 和 requests
- 同時安裝 six 和 cherrypy
pip install flake8-import-order==0.17.1 flake8==3.5.0
pip install tornado==5.0 sprockets.http==1.5.0
指令:
pip install
pip uninstall
pip check
pip cache
請使用這個表單回報。