pip install 失败并显示“连接错误:\[SSL: CERTIFICATE_VERIFY_FAILED\] 证书验证失败 (_ssl.c:598)”

新手上路,请多包涵

我对 Python 非常陌生,并试图在 Windows 7 上使用 > pip install linkchecker 。一些注意事项:

  • 无论软件包如何,pip install 都会失败。例如, > pip install scrapy 也会导致 SSL 错误。
  • Python 3.4.1 的香草安装包括 pip 1.5.6。我尝试做的第一件事是安装链接检查器。 Python 2.7 已经安装,它随 ArcGIS 一起提供。 pythonpip 在我安装 3.4.1 之前无法从命令行使用。
  • > pip search linkchecker 有效。这可能是因为 pip search 没有验证站点的 SSL 证书。
  • 我在公司网络中,但我们不通过代理访问 Internet。
  • 每台公司计算机(包括我的)都有一个受信任的根证书颁发机构,用于各种原因,包括启用对 https://google.com 的 TLS 流量的监控。不确定这是否与它有关。

以下是运行 pip install linkchecker 后我的 pip.log 的内容:

 Downloading/unpacking linkchecker
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Getting page https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by <class 'http.client.CannotSendRequest'>: Request-sent)
  Will skip URL https://pypi.python.org/simple/ when looking for download links for linkchecker
  Cannot fetch index base URL https://pypi.python.org/simple/
  URLs to search for versions for linkchecker:
  * https://pypi.python.org/simple/linkchecker/
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Could not find any downloads that satisfy the requirement linkchecker
Cleaning up...
  Removing temporary dir C:\Users\jcook\AppData\Local\Temp\pip_build_jcook...
No distributions at all found for linkchecker
Exception information:
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\Python34\lib\site-packages\pip\req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\Python34\lib\site-packages\pip\index.py", line 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: No distributions at all found for linkchecker

原文由 Jeremy Cook 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
1 个回答
pip install gensim config --global http.sslVerify false

只需使用“config –global http.sslVerify false”语句安装任何包

您可以通过设置 pypi.orgfiles.pythonhosted.org 以及旧的 pypi.python.org 作为可信主机来忽略SSL错误。

 $ pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <package_name>

注意:2018 年 4 月的某个时候, Python 包索引pypi.python.org 迁移到 pypi.org 。这意味着使用旧域的“可信主机”命令不再有效,但您可以添加两者。

永久修复

自 pip 10.0 发布以来,您应该能够通过升级 pip 本身来永久修复此问题:

 $ pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pip setuptools

或者通过 重新安装它 来获取最新版本:

 $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

(……然后使用相关的 Python 解释器运行 get-pip.py )。

pip install <otherpackage> 应该在此之后工作。如果没有,那么您将需要做更多,如下所述。


您可能希望 将受信任的主机和代理添加到您的配置文件 中。

pip.ini (Windows) 或 pip.conf (unix)

 [global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org


替代解决方案(不太安全)

大多数答案可能会带来安全问题。

有助于轻松安装大多数 python 包的两个解决方法是:

  • 使用 easy_install :如果您真的很懒并且不想浪费太多时间,请使用 easy_install <package_name> 。请注意,某些包将找不到或会出现小错误。
  • 使用Wheel :下载 python包的Wheel 并使用pip命令 pip install wheel_package_name.whl 安装包。

原文由 Vaulstein 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题