SSL:Ubuntu 16.0.4中Python pip的CERTIFICATE_VERIFY_FAILED错误

时间:2018-03-28 17:28:41

标签: python ubuntu ssl pip

Python pip突然停止工作,它提供 SSL:CERTIFICATE_VERIFY_FAILED 错误。
我无法安装任何pip包。
sudo pip install scikit-image 正在抛出以下错误

  

重试(重试(总计= 0,连接=无,读取=无,重定向=无,状态=无))连接被“SSLError”破坏后(SSLError(1,u' [SSL:CERTIFICATE_VERIFY_FAILED证书验证失败(_ssl.c:590)'),)':/ simple / scikit-image /
    无法获取网址https://pypi.python.org/simple/scikit-image/:确认ssl证书时出现问题:
HTTPSConnectionPool(host =' pypi.python.org',port = 443):网址超出最大重试次数:/ simple / scikit-image /(由SSLError引起(SSLError(1,你' [SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)'),)) - 跳过

我尝试使用easy_install,但它提供了相同的SSL错误 当我尝试使用wget下载5GB的zip文件时,下载的文件大小以KB为单位 有人可以为上述问题提出解决方案。

谢谢

1 个答案:

答案 0 :(得分:3)

它可能与PyPI域的recent change有关 变更公告:
https://pyfound.blogspot.com/2018/03/warehouse-all-new-pypi-is-now-in-beta.html
https://pyfound.blogspot.com/2017/01/time-to-upgrade-your-python-tls-v12.html

如果您从代理/防火墙后面运行pip,请确保它允许访问/来自:

  • pypi.org
  • files.pythonhosted.org

您也可以尝试某些pip选项:
$ python -m pip <command> --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org ... --proxy ...

如果过时的操作系统根证书出现问题,请使用urllib3和certifi库进行SSL certificate verification和TLS连接。你可以尝试一下:
$ pip install --user --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org certifi

如果仍然不行,请浏览PyPI.org并从“下载文件”部分下载python certifi package,然后手动安装:
$ pip install --user --no-index ~/Downloads/certifi-2018.11.29-py2.py3-none-any.whl

顺便说一下,与sudo apt不同,运行sudo pip install命令以root权限来安装或升级Python包是not recommended,因为它会干扰您的操作系统包管理器子系统(apt, yum等)可能影响依赖于你的系统python的基本操作系统(Ubuntu,Debian,Fedora等)组件。 --user标志允许将软件包安装到您的主目录(在〜/ .local / lib下);否则你可以使用virtualenv

对于系统范围的软件包部署,Ubuntu希望我们使用apt软件包管理器。有许多(不是全部)python包,包括你需要的scikit - 只需使用$ apt search(与旧的$ apt-cache search相同)来查找它,$ apt show用于包描述,和$ sudo apt install安装。