[英]How to include git dependencies in setup.py for pip installation
[英]Include minimum pip version in setup.py
我為我的應用程序創建了一個 setup.py。 我在 install_requires 中設置的一些依賴項需要 pip 版本 19.3.1 或更高版本。
有沒有辦法檢查 pip 版本作為 setup.py 的一部分? 並在構建之前升級 pip?
您無需負責在項目中針對其他項目打包中的問題構建變通方法。 這是一種不好的做法。 無論如何,作為setup.py
一部分執行此操作也沒有多大意義,因為在許多情況下,此文件在安裝時不會執行。
你能做的最好的事情是嘗試直接修復這些依賴項目的錯誤打包:聯系維護者、提交問題、提出修復等。
第二個最好的事情是通知您項目的用戶。 在您自己項目的文檔中清楚說明這個問題以及如何防止它(即“安裝pip版本19.3.1或更高版本”)。
更新:
如果您決定無論如何都要在setup.py
執行檢查,這里有一些技術可能會有所幫助...
但我仍然建議不要使用這些,因為您的setup.py
實際上並沒有錯,但問題似乎在於依賴項的打包。
1.
__requires__ = ['pip >= 19.3.1'] # make sure it's before 'import setuptools'
import setuptools
setuptools.setup(
# ...
)
這將引發異常:
pkg_resources.DistributionNotFound: The 'pip>=19.3.1' distribution was not found and is required by the application
這種技術的缺點是它不會在從pip調用時觸發(例如: pip install .
),因為在這種情況下__main__
模塊不是setup.py
而是pip的模塊。
參考:
2.
import pkg_resources
import setuptools
pkg_resources.require(['pip >= 19.3.1'])
setuptools.setup(
# ...
)
這將觸發pkg_resources.VersionConflict
異常。
即使從pip調用,這也應該有效,但是......
這似乎不適用於構建隔離( PEP 517 , pyproject.toml
),因為在這種情況下,構建環境中通常根本沒有pip 。
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.