【问题标题】:pip install fails with "connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)"pip install 失败并显示“连接错误:[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:598)”
【发布时间】:2017-11-01 12:07:43
【问题描述】:

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

  • 无论软件包如何,pip 安装都失败。例如,> pip install scrapy 也会导致 SSL 错误。
  • Python 3.4.1 的香草安装包括 pip 1.5.6。我尝试做的第一件事是安装链接检查器。 Python 2.7 已经安装,它随 ArcGIS 一起提供。在我安装 3.4.1 之前,pythonpip 在命令行中不可用。
  • > 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

【问题讨论】:

标签: python windows ssl pip


【解决方案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 Package Indexpypi.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

或通过reinstalling it 获取最新版本:

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

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

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


您可能想add the trusted hosts and proxy to your config file

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

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

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

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

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

  • 使用easy_install:如果你真的很懒,不想浪费太多时间,请使用easy_install &lt;package_name&gt;。请注意,某些软件包将找不到或会出现小错误。
  • 使用 Wheel:下载 Wheel of the python package 并使用 pip 命令 pip install wheel_package_name.whl 安装软件包。

【讨论】:

  • 您的更新让我的事情顺利进行。在我的情况下,公司防火墙将自己插入为 SSL 连接的受信任主机。我认为代理设置是错误的,但添加详细信息表明问题是 SSL。 index-url 更改解决了这个问题。
  • 太棒了,谢谢!受信任的主机似乎就足够了,即。 pip install --trusted-host pypi.python.org pypi_package。使用--verbose 表明,如果没有--trusted-host,HTTPS 连接将失败,而使用--trusted-host 尝试相同的HTTPS 连接(不是HTTP)但它成功。
  • 不使用 HTTP 版本(甚至信任它)也有安全风险吗?
  • 你可以把 --index-url 参数设置成简短的,试试这个命令也应该没问题:pip install --trusted-host pypi.python.org pythonPackage
  • 它对我不起作用。在 macbookpro 15" Python 2.7 pip 9.0.1 上运行 mac os high sierra 我尝试了两个: sudo -H pip install --trusted-host pypi.python.org numpy 和 sudo pip install --trusted-host pypi.python.org numpy 它总是给我同样的错误:“确认 ssl 证书时出现问题:[SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 警报协议版本 (_ssl.c:661) - 跳过找不到满足要求的版本”
【解决方案2】:

您可以使用此参数指定证书:

pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker

见:Docs » Reference Guide » pip

如果指定您公司的根证书不起作用,cURL 可能会起作用:http://curl.haxx.se/ca/cacert.pem

您必须使用 PEM 文件而不是 CRT 文件。如果您有 CRT 文件,则需要 convert the file to PEM 在 cmets 中有报告称这现在适用于 CRT 文件,但我尚未验证。

同时检查:SSL Cert Verification

【讨论】:

  • Curl one 是安全的。我建议使用它。
  • @JeremyCook 可能是您服务器上的时间,如果是过去,则可能是验证过程
  • 不支持 CRT 格式,仅支持 PEM 格式。您需要使用 openssl 将 CRT 转换为 PEM 格式。您还应该验证您下载的捆绑包是否包含正确的根 CA。详情请看我上面的回答:stackoverflow.com/a/28724886/41957.
  • @JeremyCook,PEM/证书并非直接来自您下载它们的第三方。他们从原始来源收集了证书。第 3 方不可能生成其他人的证书,除非他们拥有正确的密钥(只有其他人才有)。
  • @endolith - 查看pip.pypa.io/en/stable/user_guide/#configuration 看起来您可以使用环境变量或pip.conf 文件来永久引用它们而无需在命令中指定
【解决方案3】:

对我来说,问题是通过创建一个文件夹来解决的 pip,带文件:pip.iniC:\Users\&lt;username&gt;\AppData\Roaming\ 例如:

C:\Users\<username>\AppData\Roaming\pip\pip.ini

我在里面写道:

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

我重新启动了 python,然后 pip 永久信任这些站点,并使用它们从中下载包。

如果您在 Windows 上找不到 AppData 文件夹,请在文件资源管理器中写入 %appdata%,它应该会出现。

【讨论】:

  • 奇怪的是这对我的 Win10 机器没有帮助:/
  • 工作中,Windows 10环境,使用Cmder控制台模拟器。 --trusted-host 用于解决“'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书”问题。今天它停止工作。我放置了我的 pip 文件夹的副本(取自 ../AppData/Roaming/ 中的 ../AppData/Local/ ),我的本地 python 世界再次一切正常。非常感谢!
  • 太棒了!非常感谢。 --trusted-host 现在对我不起作用,但您的解决方案会有所帮助。
  • 安装Python时为什么没有下载这个>
  • 太棒了!我正在搜索与 GIT、公司代理、SSL 相关的错误,它只是与 pip 相关。谢谢你,我希望这个评论能让像我一样困惑的人来到这里。
【解决方案4】:

kenorb’s answer 非常有用(而且很棒!)。
在他的解决方案中,也许这是最简单的一个: --trusted-host

例如,在这种情况下你可以这样做

pip install --trusted-host pypi.python.org linkchecker

pem 文件(或其他任何文件)是不必要的。

【讨论】:

  • 这也适用于其他命令,例如pip list --trusted-host pypi.python.org --outdated
【解决方案5】:

答案非常相似,有点令人困惑。就我而言,我公司网络中的证书是问题所在。我能够使用以下方法解决该问题:

pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org oauthlib -vvv

As seen here。如果不需要详细输出,可以省略 -vvv 参数

【讨论】:

  • 之所以有效,是因为今天我使用了一些去除正常 SSL 的代理。当成年人运行网络时,我通常不需要指定受信任的主机。
【解决方案6】:

永久修复

pip install --upgrade pip --trusted-host pypi.org --trusted-host files.pythonhosted.org

例如:

pip install <package name> --trusted-host pypi.org --trusted-host files.pythonhosted.org

【讨论】:

  • 不要尝试这个解决方案,它会卸载 pip 甚至让我无法重新安装 pip
【解决方案7】:

我尝试了此答案博客中提供的大多数解决方案,但是 它们都不起作用,我在尝试安装 python 包时遇到了这个 ssl certificant error

我通过以下命令成功:

python -m pip install PACKAGENAME --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org 

【讨论】:

  • 你是神/女神
  • 经过大量搜索终于做到了。事实证明,如果您在公司网络上,它们有时会弄乱您的 SSL 或证书,或者可能与防火墙/代理有关。如果您有也适用于我的 wi-fi 适配器,请尝试使用移动热点或其他东西。
【解决方案8】:

使用 Python 3.9 的 Windows 10 上与 Netscope 相关的 SSL 问题

由于与 netscope 相关的公司网络安全,我遇到了 ssl 问题。我的机器是 windows 10 with python 3.9,以下命令对我有用。

pip config set global.trusted-host "pypi.org files.pythonhosted.org pypi.python.org" --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org

在这里,pip 永久信任这些站点,现在我们可以使用它们下载任何包。

【讨论】:

  • 非常感谢
  • 你救了我的命。我还怀疑 NetSkope 是罪魁祸首。
  • 经过多次尝试,这一次拯救了我的一天。谢谢!!!
【解决方案9】:

我找到的最直接的方法是从 DigiCert 下载并使用“DigiCert High Assurance EV Root CA”,地址为https://www.digicert.com/digicert-root-certificates.htm#roots

您可以访问https://pypi.python.org/通过点击地址栏中的锁定图标来验证证书颁发者,或者使用openssl增加您的极客信誉:

$ openssl s_client -connect pypi.python.org:443
CONNECTED(00000003)
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro,/O=Python Software Foundation/CN=www.python.org
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA

证书链中的最后一个 CN 值是您需要下载的 CA 的名称。

对于一次性工作,请执行以下操作:

  1. 从 DigiCert 下载 CRT
  2. 将 CRT 转换为 PEM 格式
  3. 将 PIP_CERT 环境变量导出到 PEM 文件的路径

(最后一行假设您使用的是 bash shell)在运行 pip 之前。

curl -sO http://cacerts.digicert.com/DigiCertHighAssuranceEVRootCA.crt 
openssl x509 -inform DES -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem -text
export PIP_CERT=`pwd`/DigiCertHighAssuranceEVRootCA.pem

要使其可重用,请将 DigiCertHighAssuranceEVRootCA.crt 放在公共位置,并在 ~/.bashrc 中相应地导出 PIP_CERT。

【讨论】:

  • 使用您的答案将我们公司的根 CA 导出到 PIP_CERT 变量,最后在尝试了包括 'pip --cert cert.pem' 在内的所有其他方法之后...只需 pip 安装包。 BIG +1 - 是的,我们有防火墙/代理/utm。
  • 这对我来说在 Mac Mojave 上仍然失败。我完全遵循了 3 个步骤,但仍然得到“错误:pip 配置了需要 TLS/SSL 的位置,但是 Python 中的 ssl 模块不可用”。我尝试了所有 --trusted-host 和 --cert 选项,但 pip 不起作用。我尝试升级 pip 并收到 SSL 错误。我使用 curl 从头开始​​安装 pip,但在运行 pip 时仍然出现错误。是时候放弃 pip 并坚持使用 conda 了 :(
【解决方案10】:

要一劳永逸地解决这个问题,你可以验证你有一个pip.conf 文件。

根据documentation,这是您的pip.conf 应该在的位置:

在 Unix 上,默认配置文件是:$HOME/.config/pip/pip.conf,它尊重 XDG_CONFIG_HOME 环境变量。

在 macOS 上,如果目录 $HOME/Library/Application Support/pip 存在,则配置文件为 $HOME/Library/Application Support/pip/pip.conf,否则为 $HOME/.config/pip/pip.conf

在 Windows 上,配置文件是 %APPDATA%\pip\pip.ini

在虚拟环境中:

在 Unix 和 macOS 上,该文件是 $VIRTUAL_ENV/pip.conf

在 Windows 上,文件为:%VIRTUAL_ENV%\pip.ini

您的pip.conf 应如下所示:

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

在我创建pip.conf 文件后,pip install linkchecker 安装linkchecker 没有任何问题。

【讨论】:

  • $HOME/Library/Application Support/pip 在我的机器上不存在,有其他位置吗?
  • 自我发布此答案以来,pip 用户指南似乎已更新。我更新了 macOS 的答案。有帮助吗?
  • 不影响我Win10机器上的SSL错误:/
  • 无法解决 MacOSX 上的问题。
  • 我在 macOS 上。如果您使用brew 安装python3,请确保您使用的是pip3 并创建pip.confas $HOME/.config/pip/pip.conf。我为我工作。
【解决方案11】:

您可以通过以下方式解决CERTIFICATE_VERIFY_FAILED 的问题:

  • 使用 HTTP 而不是 HTTPS(例如--index-url=http://pypi.python.org/simple/)。
  • 使用--cert &lt;trusted.pem&gt;CA_BUNDLE 变量指定备用CA 捆绑包。

    例如您可以从网络浏览器转到失败的 URL 并将根证书导入您的系统。

  • 运行python -c "import ssl; print(ssl.get_default_verify_paths())" 来检查当前的(验证是否存在)。

  • OpenSSL 有一对环境(SSL_CERT_DIRSSL_CERT_FILE),可用于指定不同的证书数据库PEP-476
  • 使用--trusted-host &lt;hostname&gt; 将主机标记为受信任。
  • 在 Python 中,将 verify=False 用于 requests.get(参见:SSL Cert Verification)。
  • 使用--proxy &lt;proxy&gt; 避免证书检查。

阅读更多:TLS/SSL wrapper for socket objects - Verifying certificates

【讨论】:

  • 从您的第一点开始,我如何使用 pip 命令指定 HTTP?
  • @rayzinnz 我已经添加了示例。
【解决方案12】:

正确设置时间和日期!

对我来说,我的日期和时间在 Raspberry Pi 上配置错误。结果是所有 SSL 和 HTTPS 连接都失败了,使用 https://files.pythonhosted.org/ 服务器。

像这样更新它:

sudo date -s "Wed Thu  23 11:12:00 GMT+1 2018"
sudo dpkg-reconfigure tzdata

或直接使用例如谷歌时间:

参考:https://superuser.com/a/635024/935136

sudo date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
sudo dpkg-reconfigure tzdata

【讨论】:

  • 让我发疯了好几个小时——谢谢。对我来说,PI 时间缩短了 10 天,导致(它会出现)在 pip 安装期间出现各种错误。
【解决方案13】:

我最近遇到了这个问题,因为我公司的 Web 内容过滤器使用自己的证书颁发机构来过滤 SSL 流量。在我的情况下,PIP 似乎没有使用系统的 CA 证书,从而产生了您提到的错误。将 PIP 降级到版本 1.2.1 之后会出现一系列问题,因此我回到了 Python 3.4 附带的原始版本。

我的解决方法很简单:使用easy_install。要么它不检查证书(如旧 PIP 版本),要么它知道使用系统证书,因为它每次都适用于我,我仍然可以使用 PIP 卸载使用 easy_install 安装的软件包。

如果这不起作用并且您可以访问没有问题的网络或计算机,您可以随时设置自己的个人 PyPI 服务器:how to create local own pypi repository index without mirror?

我几乎是这样做的,直到我尝试使用 easy_install 作为最后的努力。

【讨论】:

  • 这里有同样的问题。另一种解决方法是将公司的根证书导出为文件并告诉pip--cert MyCompanyRootCA.crt 一起使用。
【解决方案14】:

您可以尝试使用 http 而不是 https 来绕过 SSL 错误。当然,这在安全性方面并不是最佳的,但如果你赶时间,它应该可以解决问题:

pip install --index-url=http://pypi.python.org/simple/ linkchecker

【讨论】:

  • 我期待您的建议能够奏效。疯狂地我得到了完全相同的错误,包括第一个Could not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  • 好的,所以另一种解决方法是下载此处提供的 tar.gz 软件包 pypi.python.org/pypi/LinkChecker/9.3 并使用以下命令进行安装:pip install LinkChecker-9.3.tar.gz
  • 但是如果您要安装的软件包有依赖项,您必须下载并安装所有依赖项,如果它们很多,这可能会成为一场噩梦。
  • 对我来说,我必须下载 whl(对于我的案例 pyserial)并安装它。这获取了 tar.gz 未收集的依赖项......所以,也许 whl 是@baxeico python -m pip install pyserial-3.4-py2.py3-none-any.whl 对我来说的另一个选项这些都不起作用:1. --cert cacert.pem 2. 导出公司证书,转换为 PEM 3. easy_install in cygwin 4. --trusted-host
  • 现在的 longs 从 2017 年开始工作——HTTP 访问已被完全切断。 mail.python.org/pipermail/distutils-sig/2017-October/…
【解决方案15】:

TLDR:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt -vvv

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <packageName> -vvv

所以,已经有 30 多个问题的答案,但在 2020 年 6 月(在锁定期间)对我来说没有任何效果。
所有这些都是在过去的不同时刻给出的。我会尽量让这个答案在未来的任何时候都有效。 问题是,当 pip 安装包时,它会尝试连接存储包的主机 URL,并且在下载它时不信任该 URL。

有两种方法可以解决这个问题: 简单且不安全: 1.查看pip点击哪个URL下载包。

pip install <packageName> -vvv

如果您仔细检查输出,您会发现它可能会转到某个 URL,例如 pypi.org 或 pypi.python.org。

如果是,只需在命令中添加受信任的主机选项,如下所示:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org <packageName> -vvv

或者如果您正在使用需求文件:

pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt -vvv

安全方式:

转到每个 URL 并下载他们的公共证书(只是谷歌如何下载),创建一个链,将其存储为 .pem 文件并运行以下命令:

pip --cert YourPemFile.pem install <packageName>

【讨论】:

    【解决方案16】:

    我使用 easy_install 安装了 pip 1.2.1 并升级到最新版本的 pip(当时为 6.0.7),它能够在我的情况下安装软件包。

    easy_install pip==1.2.1
    pip install --upgrade pip
    

    【讨论】:

    • 谢谢你,这对我来说就像一个魅力!!
    【解决方案17】:

    使用答案

    pip install --trusted-host pypi.python.org <package>
    

    工作。但是您必须检查是否有重定向或缓存pip 正在命中。在带有pip 9.0.1 的 Windows 7 上,我必须运行

    pip install \
      --trusted-host pypi.python.org \
      --trusted-host pypi.org \
      --trusted-host files.pythonhosted.org \
      <package>
    

    您可以使用详细标志找到这些。

    【讨论】:

      【解决方案18】:

      您有 4 个选项:

      使用证书作为参数

      $ pip install --cert /path/to/mycertificate.crt linkchecker
      

      pip.conf 中使用证书

      创建这个文件:

      $HOME/.pip/pip.conf (Linux)
      
      %HOME%\pip\pip.ini (Windows)
      

      并添加这些行:

      [global]
      cert = /path/to/mycertificate.crt
      

      忽略证书并使用 HTTP

      $ pip install --trusted-host pypi.python.org linkchecker
      

      忽略证书并在 pip.conf 中使用 HTTP

      创建这个文件:

      $HOME/.pip/pip.conf (Linux)
      
      %HOME%\pip\pip.ini (Windows)
      

      并添加这些行:

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

      来源

      【讨论】:

        【解决方案19】:

        首先,

            pip install --trusted-host pypi.python.org <package name>
        

        对我不起作用。我不断收到 CERTIFICATE_VERIFY_FAILED 错误。但是,我在错误消息中注意到他们引用了“pypi.org”站点。因此,我将其用作受信任的主机名,而不是 pypi.python.org。这几乎让我到了那里;加载仍然失败并出现 CERTIFICATE_VERIFY_FAILED,但在稍后的时间点。找到对失败网站的引用,我将其列为受信任的主机。最终对我有用的是:

            pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>
        

        【讨论】:

        • 只有你的答案对我有用。知道如何在 VS Code 中指定受信任的主机配置吗?
        【解决方案20】:

        在 64 位 Windows 7 Enterprise 上使用 ActivePython 2.7.8、ActivePython 3.4.1 和“stock”Python 3.4.2 尝试 pip install ftputil 时遇到同样的问题。所有尝试都失败,并出现与 OP 相同的错误。

        通过降级到 pip 1.2.1 解决了 Python 3.4.2 的问题:easy_install pip==1.2.1(请参阅https://stackoverflow.com/a/16370731/234235)。同样的修复也适用于 ActivePython 2.7.8。

        2013 年 3 月报告的错误仍然存​​在:https://github.com/pypa/pip/issues/829

        【讨论】:

        • 这对我也有用。虽然首先降级到旧版本的 pip 似乎是个坏主意,但我正在处理旧的 django 包,所以旧的 pip 版本实际上与其他包匹配。
        • 问题 829 现已关闭。
        【解决方案21】:

        我尝试使用公司代理,但失败了。

        我正在使用Python 3.6

        pip.conf 文件丢失。

        以下是解决问题的步骤:

        1. 安装证书包:-pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install certifi

        2. 创建一个pip.conf 文件,如下所示:

             $ cd ~/.config 
             $ mkdir pip
             $ cd pip
             $ nano pip.conf
        

        将以下内容添加到新创建的.conf 文件中,并保存。

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

        一切都完成了,它开始工作了。

        【讨论】:

        • 我必须想办法在 Win10 上做到这一点,但是当其他人都做不到时,这个答案让我找到了解决方案。非常感谢!
        【解决方案22】:

        在我使用 --verbose 选项查看它想要访问 files.pythonhosted.org 而不是 pypi.python.org 之前,此页面上的任何内容都不适合我:

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

        因此,通过 --verbose 选项检查它实际上失败的 URL。

        【讨论】:

          【解决方案23】:

          我不确定这是否相关,但我遇到了类似的问题,已通过将这些文件从 Anaconda3/Library/bin 复制到 Anaconda3/DLLs 来解决:

          libcrypto-1_1-x64.dll

          libssl-1_1-x64.dll

          【讨论】:

          • 使用 Anaconda 2019.03 我已将以下文件从 /Library/bin 复制到 /DLLs libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl -1_1-x64.dll libssl-1_1-x64.pdb 然后我添加了一个ConnectTimeout错误,所以更新了代理配置.condarc
          • 有效。伙计,你是天才!我已经在论坛上漫游了 1.5 个小时,只是为了找到这个被低估且简单的解决方案。
          【解决方案24】:

          不要跳过!找到适用于 Linux 的安全解决方案

          --trusted-hostpypi.org添加到受信任站点的所有解决方案都不安全,基本上跳过了https,并没有真正解决问题
          使用此方法的每个人,请尝试以这种方式更新您的证书并删除 --trusted-host 标志:

          sudo yum -y update ca-certificates
          export PIP_CERT=/etc/ssl/certs/ca-bundle.crt 
          

          安全很重要!

          【讨论】:

          • 你能帮忙为 Mac 做类似的事情吗?
          【解决方案25】:

          短解:

          easy_install <package name>
          

          例如:

          easy_install pandas
          

          替代解决方案:

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

          例子:

          pip install pandas --trusted-host pypi.org --trusted-host files.pythonhosted.org
          

          【讨论】:

            【解决方案26】:

            只是把这个放在这里,因为我没有看到任何其他人提到它。

            您可以像这样将全局可信主机设置为 pip:

            py -m pip config set global.trusted-host pypi.org
            

            最重要的是,它将返回放置 pip.ini/pip.conf 的正确位置

            【讨论】:

              【解决方案27】:

              我通过删除我的 pip 并安装旧版本的 pip 解决了这个问题: https://pypi.python.org/pypi/pip/1.2.1

              【讨论】:

              • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
              • @apomene OP 应该如何include the essential parts of the answer here,因为它是一个 二进制文件...的链接...?
              • @ThomasAyoub,我相信您已经知道,当将答案标记为仅链接答案时,上述消息是从 SO 自动填充的
              • @apomene 没有回答我的问题,我仍然看不到 OP 可以/应该添加什么?
              • @ThomasAyoub,为了进一步详细说明,我的评论 (SO) 表明问题很短且仅链接,这意味着它最好是评论。我的意图不是明确说明 OP 应该添加重新分级链接的详细信息,而是详细说明为什么这会回答问题。
              【解决方案28】:

              最近我在 Visual Studio 2015 的 python 3.6 中遇到了同样的问题。花了 2 天后,我得到了解决方案,它对我来说工作正常。

              尝试使用 pip 或从 Visual Studio 安装 numpy 时出现以下错误 收集 numpy 无法获取 URL https://pypi.python.org/simple/numpy/:确认 ssl 证书时出现问题:[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:748) - 跳过 找不到满足 numpy 要求的版本(来自版本:) 没有找到 numpy 的匹配分布

              分辨率:

              适用于 Windows 操作系统

              1. open -> "%appdata%" 如果“pip”文件夹不存在,则创建。
              2. 在 pip 文件夹中创建“pip.ini”文件。
              3. 编辑文件并写入
                [全球]
                受信任的主机 = pypi.python.org 保存并关闭文件。现在安装 使用 pip/visual studio 效果很好。

              【讨论】:

                【解决方案29】:

                一种解决方案(对于 Windows)是在 %AppData%\pip\ 文件夹中创建一个名为 pip.ini 的文件(如果该文件夹不存在,则创建该文件夹) 和插入以下详细信息:

                [global]
                cert = C:/certs/python_root.pem
                proxy = http://my_user@my_company.com:my_password@proxy_ip:proxy_port
                

                ...然后我们可以执行安装指令:

                pip3 install PyQt5
                

                另一种选择是使用代理和证书的参数安装包...

                $ pip3 install --proxy http://my_user@my_company.com:my_password@proxy_ip:proxy_port \
                   --cert C:/certs/python_root.pem PyQt5
                

                要将证书*.cer 文件转换为所需的*.pem 格式,请执行以下指令:

                $ openssl x509 -inform der -in python_root.cer -out python_root.pem
                

                希望这对某人有所帮助!

                【讨论】:

                • 对于其他操作系统,请查看Alex-Antoine Fortin's answer
                • 不需要代理,只需要证书。我跑了; pip3.6 config set global.cert '/&lt;path&gt;/server.crt'
                【解决方案30】:

                你可以试试这个忽略“https”:

                pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]
                

                【讨论】:

                • 如果你还有其他 pip 版本的问题,你可以试试这个pip install --trusted-host pypi.python.org --upgrade pip –
                猜你喜欢
                • 2018-12-12
                • 2018-07-29
                • 2017-06-01
                • 2017-02-05
                • 2023-03-03
                • 1970-01-01
                相关资源
                最近更新 更多