繁体   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