簡體   English   中英

通過pip安裝psutil(wheel)作為依賴項時遇到麻煩

[英]Troubles while installing psutil (wheel) as a dependency via pip

我寫了一個包依賴依賴於psutil my-packagemy-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 / MacWindows包裝器一起使用來執行一致安裝的銷售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.

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