每个包的“pip install”都失败(“无法找到满足要求的版本”)

时间:2018-04-10 07:43:47

标签: python pip pypi

pip install <package name>对我而言都失败了。这就是我得到的:

Could not find a version that satisfies the requirement <package-name
(from versions: )
No matching distribution found for <package-name>

我在Stack Overflow上saw similar questions,但它们似乎与此完全无关。

另外,this post表示如果PyPI关闭或我的IP地址被列入黑名单,可能会发生这种情况。我的情况似乎都不正确。

pip显示正在运行pip install --upgrade pip

2 个答案:

答案 0 :(得分:108)

升级点数如下:

curl https://bootstrap.pypa.io/get-pip.py | python

发生了什么:

Python.org网站正在停止对TLS版本1.0和1.1的支持。这意味着Mac OS X version 10.12(Sierra)或更老版本将无法使用pip,除非他们按上述方式升级pip。

(请注意,通过pip install --upgrade pip升级点数也不会正确升级。这是一个鸡与蛋的问题)

This帖子解释了它(感谢this Twitter post):

  

使用pip和PyPI的Mac用户:

     

如果您运行的是macOS / OS X 10.12或更早版本,那么您应该这样做   升级到最新的pip(9.0.3)以连接到Python Package   安全索引:

curl https://bootstrap.pypa.io/get-pip.py | python
     

我们建议您在4月8日之前完成。

     

在macOS上的系统Python下运行时,Pip 9.0.3支持TLSv1.2&lt;   10.13。官方发行说明:https://pip.pypa.io/en/stable/news/

此外,Python status page

  

已完成 - 滚动限制已完成,TLSv1.0和TLSv1.1已被禁用。 4月11日,15:37 UTC

     

更新 - 滚动限制已升级为停电,TLSv1.0和TLSv1.1将始终以HTTP 403拒绝。   4月8日,15:49 UTC

最后,为了避免其他安装错误,请确保在执行上述操作后还升级setuptools:

pip install --upgrade setuptools

答案 1 :(得分:4)

为PyPI删除了对TLS 1.0和1.1的支持。如果您的系统不使用更新版本,则可以解释您的错误。

您是否可以尝试在系统范围内重新安装pip,以将系统依赖关系更新为更新版本的TLS?

这似乎与Unable to install Python libraries

有关

见Dominique Barton的回答:

  

显然pip正试图通过HTTPS(加密且很好)访问PyPI,但是使用旧的(不安全的)SSL版本。你的系统似乎已经过时了。如果您更新软件包可能会有所帮助。

     

在基于Debian的系统上,我试试:

apt-get update && apt-get upgrade python-pip
     

在基于Red Hat Linux的系统上:

yum update python-pip # (or python2-pip, at least on Red Hat Linux 7)
     

在Mac上:

sudo easy_install -U pip
     

您还可以尝试单独更新openssl