'pip install'对每个包都失败("找不到满足要求的版本")

Anu*_*pam 66 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>
Run Code Online (Sandbox Code Playgroud)

我在Stack Overflow上看到了 类似的 问题,但它们似乎与这个问题没有完全相关.

此外,这篇文章表明,如果PyPI关闭或我的IP地址被列入黑名单,可能会发生这种情况.对我来说,这似乎都不正确.

pip显示最新的运行情况pip install --upgrade pip.

Anu*_*pam 124

升级点如下:

curl https://bootstrap.pypa.io/get-pip.py | python
Run Code Online (Sandbox Code Playgroud)

发生了什么:

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

(请注意,升级pip via sudo python也不会正确升级.这是一个鸡与蛋的问题)

这个帖子解释了它(感谢这篇Twitter帖子):

使用pip和PyPI的Mac用户:

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

curl https://bootstrap.pypa.io/get-pip.py | python
Run Code Online (Sandbox Code Playgroud)

我们建议你在4月8日之前完成.

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

此外,Python状态页面:

已完成 - 滚动限制已完成,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
Run Code Online (Sandbox Code Playgroud)

  • (使用MacOS)在我的情况下只帮助:`curl https://bootstrap.pypa.io/get-pip.py | sudo python` (10认同)
  • 如果您遇到任何权限问题,请使用:curl https://bootstrap.pypa.io/get-pip.py | sudo python (8认同)
  • 由于EnvironmentError导致无法安装软件包:[Errno 13]权限被拒绝:'/ Library /Python/2.7/site-packages/setuptools-1.3.1-py2.7.egg'考虑使用`--user`选项或检查权限.....我应该添加--user选项吗? (5认同)
  • 不再工作了吗?想知道每个人如何接受这个答案 (3认同)
  • 我使用的是 Linux,这些说明没有帮助 (2认同)

Guy*_*ush 10

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

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

这似乎与无法安装Python库有关

见Dominique Barton的回答:

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

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

apt-get update && apt-get upgrade python-pip
Run Code Online (Sandbox Code Playgroud)

在基于Red Hat Linux的系统上:

yum update python-pip # (or python2-pip, at least on Red Hat Linux 7)
Run Code Online (Sandbox Code Playgroud)

在Mac上:

sudo easy_install -U pip
Run Code Online (Sandbox Code Playgroud)

您也可以尝试openssl单独更新.

  • 窗户呢? (8认同)