每个软件包的“pip install”都失败(“找不到满足要求的版本”)[重复]
- 2024-12-05 08:38:00
- admin 原创
- 138
问题描述:
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 上看到了 类似的 问题,但它们似乎与这个问题没有完全关系。
此外,这篇文章还指出,如果 PyPI 宕机或我的 IP 地址被列入黑名单,则可能会发生这种情况。但似乎这两种情况都不适用于我的情况。
pip 显示正在运行的最新状态pip install --upgrade pip
。
解决方案 1:
升级 pip 如下:
curl https://bootstrap.pypa.io/get-pip.py | python
sudo python
注意:如果不在虚拟环境中,则可能需要使用上述内容。
发生了什么:
Python.org 网站将停止对 TLS 版本 1.0 和 1.1 的支持。这意味着Mac OS X 版本 10.12 (Sierra) 或更早版本将无法使用 pip,除非他们按照上述方法升级 pip。
(请注意,通过升级 pippip install --upgrade pip
也无法正确升级。这是一个先有鸡还是先有蛋的问题)
这个帖子对此进行了解释(感谢这条 Twitter 帖子):
使用 pip 和 PyPI 的 Mac 用户:
如果您正在运行 macOS/OS X 版本 10.12 或更早版本,那么您应该升级到最新的 pip (9.0.3) 才能安全地连接到 Python 包索引:
curl https://bootstrap.pypa.io/get-pip.py | python
我们建议您在 4 月 8 日之前完成此操作。
Pip 9.0.3 在 macOS < 10.13 的系统 Python 下运行时支持 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
解决方案 2:
PyPI 不再支持 TLS 1.0 和 1.1。如果您的系统未使用较新的版本,则可能会解释您的错误。
您能否尝试在系统范围内重新安装 pip,以将系统依赖项更新为较新版本的 TLS?
这似乎与无法安装 Python 库有关
请参阅 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
单独更新。