SSL:来自Ubuntu 16.0.4中的Python pip的CERTIFICATE_VERIFY_FAILED错误

Ais*_*rya 5 python ubuntu ssl pip

Python pip突然停止工作,并显示SSL:CERTIFICATE_VERIFY_FAILED错误。
我无法安装任何pip软件包。
sudo pip install scikit-image抛出以下错误

连接被'SSLError(SSLError(1,u)[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c :590)'),)':/ simple / scikit-image /
无法获取URL https://pypi.python.org/simple/scikit-image/:确认ssl证书时出现问题:
HTTPSConnectionPool(host = 'pypi.python.org',端口= 443):url:/ simple / scikit-image /超出了最大重试次数(由SSLError(SSLError(1,u'[SSL:CERTIFICATE_VERIFY_FAILED]证书导致验证失败(_ssl.c: 590)'),))-跳过

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

谢谢

Ale*_* C. 5

这可能与最近PyPI 域的变化有关。
变更公告:
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 ...

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

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

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

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