[英]Troubles while installing psutil (wheel) as a dependency via pip
我寫了一個包依賴依賴於psutil my-package
( my-package
依賴於依賴於psutil
third-party-package
)。
因為它應該在沒有任何連接且沒有gcc
的服務器上運行,所以我使用psutil
python平台輪在本地准備部署並且pip install my-package --download
,然后在服務器上發送所有內容。
現在一切都在服務器上准備就緒,但出於某種原因,當我運行安裝時, pip
拒絕安裝psutil
。 請注意,服務器是一個red hat 7.2運行pip 7.1.0, virtualenv 1.10.1和python 2.7.5(我無法更改任何版本)。
$ pip install /tmp/python_packages/my-package-1.4.zip --no-index
--find-links /tmp/python_packages/ --use-wheel
Ignoring indexes: https://pypi.python.org/simple/
# blablabla, everything goes fine, then
Downloading/unpacking psutil (from third-party-package>=0.9->my-package==1.4)
Could not find any downloads that satisfy the requirement psutil
(from third-party-package>=0.9->my-package==1.4)
Cleaning up...
No distributions at all found for psutil (from third-party-package>=0.9->my-package==1.4)
Storing complete log in /home/anto/.pip/pip.log
這是pip.log
所說的:
Downloading/unpacking psutil (from third-party-package>=0.9->my-package==1.4)
URLs to search for versions for psutil (from third-party-package>=0.9->my-package==1.4):
# bla
Skipping file:///tmp/python_packages/psutil-4.2.0-cp27-cp27mu-linux_x86_64.whl
because it is not compatible with this Python
# bla
Could not find any downloads that satisfy the requirement psutil (from third-
party-package>=0.9->my-package==1.4)
Cleaning up...
所以“與這個Python不兼容”,好吧。 但這里有一個非常奇怪的部分:如果我沒有任何其他東西安裝psutil
,那么其余部分,一切都很順利。
$ pip install /tmp/python_packages/psutil-4.2.0-cp27-cp27mu-linux_x86_64.whl
Unpacking /tmp/python_packages/psutil-4.2.0-cp27-cp27mu-linux_x86_64.whl
Installing collected packages: psutil
Successfully installed psutil
Cleaning up...
$ pip freeze -l
psutil==4.2.0
$ pip install /tmp/python_packages/my-package-1.4.zip --no-index
--find-links /tmp/python_packages/ --use-wheel
# blablabla
Successfully installed my-package third-party-package
Cleaning up...
我錯過了什么? 任何線索?
你面臨的關鍵問題是恕我直言:
Skipping file:///tmp/python_packages/psutil-4.2.0-cp27-cp27mu-linux_x86_64.whl
because it is not compatible with this Python
最新功能已在pip中引入,以支持“許多linux”輪(參見此PEP )
當要求直接安裝車輪時,會進行最少的檢查,並且pip假定您確實希望安裝此車輪。
如果在您的情況下間接安裝車輪作為dep的dep,則在此上下文中可能存在不兼容的標簽。
我會確保使用最新版本的pip,setuptools和virtualenv來移除移動部件,它可能會解決您的問題。
模糊相關,如果這可以提供幫助,我將此腳本與Linux / Mac或Windows包裝器一起使用來執行一致安裝的銷售pip包。 關鍵是供應商的一切,這可能是你失敗的另一個原因。
確保用於創建滾輪的滾輪版本與部署期間使用的版本相同。
當我嘗試使用0.24.0車輪部署使用0.29.0構建的車輪時,我遇到了同樣的問題。
我降級了用於構建輪子的輪子版本以匹配部署期間使用的版本,這解決了問題。
從你的答案來看,你似乎已經完成了額外的步驟。
在進行離線安裝時,您需要告訴它在哪里可以找到您要明確安裝的所有軟件包,而不僅僅是頂級軟件。
我個人一直明確表示您正在查看該文件,並且像任何其他pip安裝一樣,您可以在同一行上為上下文指定多個安裝。
$ pip install --no-index --find-links file:/tmp/python_packages/ --use-wheel psutil my-package-1.4.zip
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.