pip始终无法通过ssl验证

Leg*_*ack 14 ssl pip

Pip总是失败,即使我做pip install dedupepip install --trusted-host pypi.python.org dedupe

无论如何,输出总是相同的:

收集重复数据删除

重试(重试(总计= 4,连接=无,读取=无,重定向=无,状态=无))连接被"SSLError"破坏后(SSLError(1,'[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c: 777)'),)':/ simple/dedupe/
Retrying ...

跳绳

找不到满足需求重复数据删除的版本(来自版本:)没有找到重复数据删除的匹配分布

所以我卸载了anaconda并重新安装了它.一样.

你认为问题是我的_ssl.c文件(我不知道它在哪里)必须是腐败的还是什么?为什么pip需要引用,如果我告诉它绕过ssl验证呢?

Ban*_*nty 36

我遇到了同样的问题,因为我安装了Zscaler(云安全软件)并导致:

  • python 包的 URL 主机被阻止
  • 弹出无效 SSL 证书警告
  • SSL 检查证书不受信任

正如其他人所提到的,下面将修复单个软件包的安装。pypi.python.org不需要,因为它已被替换pypi.org

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package to install>
Run Code Online (Sandbox Code Playgroud)

我通过创建pip.ini文件(pip.conf在 Unix 中)并添加以下内容永久解决了该问题:

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org
Run Code Online (Sandbox Code Playgroud)

请参阅pip 配置文件,了解如何找到您的pip.ini,或者如果您需要创建一个,则将其放置在何处。

  • 我相信这个答案被低估了。我们的IT也被Zscaler压制了,这个解决方案省去了很多麻烦。 (5认同)
  • 我也是 Zscaler 的受害者...,这解决了很多时间。 (4认同)
  • 我有全局保护,它阻止了请求。 (2认同)
  • 由于 Zcaler,我遇到了同样的问题,这个解决方案有效。非常感谢分享! (2认同)

Ale*_* C. 24

它可能与PyPI 最近更改有关.因此,请确保您的防火墙/代理允许访问/来自:

  • pypi.org
  • files.pythonhosted.org

你也可以尝试一下这样的事情:
install

<packagename>选项实际上并不绕过SSL,但允许在(并且仅当)它没有有效(或任何)HTTPS时将主机标记为受信任.使用PiPY并不重要,因为pypi.org(以前称为pypi.python.org)确实使用HTTPS,并且前面有CDN,无论连接pip客户端选项如何,它总是强制执行TLSv1.2握手要求.但是如果你有自己的pypi.org本地镜像,只有HTTP访问,然后$ pip help install可以很方便.哦,如果你坐在代理后面,请同时确保也指定它: --user

否则,您可能需要更新系统OpenSSL库和/或pip - 尝试运行pip with --trusted-host选项以向输出添加详细程度,并查看是否确实存在由此--trusted-host引起的问题--proxy [user:passwd@]proxyserver:port.在这个答案中解决了这个问题.

  • 我建议在您的 .bash_profile 或 .zshrc 中创建此别名以使其更容易:`alias pp="python -m pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org "` (4认同)

小智 11

这对我有用,试试这个:

pip install --trusted-host=pypi.org --trusted-host=files.pythonhosted.org --user {name of whatever I'm installing}


Rya*_*thm 8

我的方法是简化@Alex C 的回答:

python -m pip install --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org --upgrade pip
Run Code Online (Sandbox Code Playgroud)

  • 无论我指定这些受信任的主机,我的安装尝试总是会导致“确认 ssl 证书时出现问题:HTTPSConnectionPool(host='pypi.org', port=443)”。因此,无论如何,似乎总是会尝试 SSL 确认。 (3认同)

mik*_*-no 5

上述错误或类似错误是由虚拟机 (VM) 时间不同步引起的,我的访客 Ubuntu VM 是几天前的。

我运行此命令以使虚拟机获取正确的网络时间:

sudo timedatectl set-ntp on
Run Code Online (Sandbox Code Playgroud)

这使得 Ubuntu 客户操作系统获得网络时间。(您可能需要提供网络时间源...我使用了这篇文章:Digital Ocean - 如何在 Ubuntu 上设置时间

检查时间是否正确:

timedatectl
Run Code Online (Sandbox Code Playgroud)

重新运行失败的 pip 命令。