修复:连接错误 [SSL CERTIFICATE_VERIFY_FAILED]

目录

[Fixed] Connection error: [SSL: CERTIFICATE_VERIFY_FAILED]

  1. 连接错误:[SSL CERTIFICATE_VERIFY_FAILED]
  2. 将受信任的主机添加到您的 pip.conf 或 pip.ini 文件
  3. 使用命令更新pip.ini文件
  4. 使用时禁用 SSL 证书验证requests
  5. 升级你的版本pip
  6. 创建虚拟环境
  7. 运行命令时指定证书
  8. 尝试以详细模式运行 pip install

[已修复]连接错误:[SSL CERTIFICATE_VERIFY_FAILED]

“连接错误:[SSL: CERTIFICATE_VERIFY_FAILED]证书验证失败”发生在防火墙阻止您pypi
在尝试安装软件包时访问服务器时。

要解决该错误,请运行pip install带有--trusted-host
选项的命令。

Downloading/unpacking <package> Getting page https://pypi.python.org/simple/<package>/ Could not fetch URL https://pypi.python.org/simple/<package>/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598) Will skip URL https://pypi.python.org/simple/<package>/ when looking for download links for <package> 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

如果您在使用模块时遇到错误requests,请单击以下子标题:

打开您的 shell 并运行以下命令之一,具体取决于您的操作系统和 Python 版本。

请注意,命令包含<package-name>占位符。确保将占位符替换为您尝试安装的包的名称。

pip install <package-name> --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org # 👇️ pip3 (for Python 3) pip3 install <package-name> --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org # 👇️ if you don't have pip in PATH python -m pip install <package-name> --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org # 👇️ for Python3 python3 -m pip install <package-name> --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org # 👇️ py alias (Windows) py -m pip install <package-name> --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org

使用可信主机选项安装

如果出现权限错误,请尝试在命令前加上前缀sudo,或使用该--user选项。

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

–trusted-host选项

将主机标记为受信任的。

pypi当您尝试从防火墙后面访问服务器时,这会有所帮助。

或者,您可以将受信任的主机添加到您的pip.conf (macOS 和 Linux)或pip.ini(Windows)文件中,这样您就不必在每次需要安装包时都这样做。

将受信任的主机添加到您的 pip.conf 或 pip.ini 文件

pip.conf您的(macOS 和 Linux)或(Windows)的位置pip.ini将根据您的操作系统而有所不同。

文档的这一部分显示了“用户”下配置文件的不同位置。

对于 Linux,位置是$HOME/.config/pip/pip.conf.

对于 macOS,位置是 $HOME/Library/Application Support/pip/pip.conf $HOME/.config/pip/pip.conf

对于 Windows,位置是%APPDATA%\pip\pip.ini.

# 👇️ Windows %APPDATA%\pip\pip.ini # 👇️ same as the following (Windows) C:\Users\<username>\AppData\Roaming\pip\pip.ini # ---------------------------------------------------- # 👇️ macOS $HOME/Library/Application Support/pip/pip.conf # 👇️ macOS $HOME/.config/pip/pip.conf # ---------------------------------------------------- # 👇️ Linux $HOME/.config/pip/pip.conf

pip.conf(Linux 或 macOS)或文件pip.ini应如下所示。

点配置文件
[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org

使用命令更新pip.ini文件

手动编辑pip.conforpip.ini文件的另一种方法是使用命令。

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

将受信任的主机添加到 pip conf ini

该命令会自动将受信任的主机添加到您的pip.conf orpip.ini文件并打印文件的位置。

这非常方便,因为在您的操作系统上查找pip.conf或文件可能比预期的要困难。pip.ini

如果您无法找到pip.confpip.ini文件并希望手动添加受信任主机,请运行该pip config -v list命令。

pip config -v list pip3 config -v list

获取 pip conf 的位置

一旦trusted-hostpip.conforpip.ini文件中设置了变量,就不必--trusted-host在每次创建pip install模块时都使用该选项。

pip install numpy pip3 install numpy # 👇️ if pip is not set up in PATH python -m pip install numpy python3 -m pip install numpy # 👇️ py alias (Windows) py -m pip install numpy

使用时禁用 SSL 证书验证requests

如果您在使用模块时遇到错误requestsrequests无法验证站点的 SSL 证书。

verify将关键字参数设置False为禁用请求的 SSL 证书验证。

请注意,您应该只在本地开发或测试期间禁用 SSL 证书验证,因为它可能会使您的应用程序容易受到中间人攻击。

主程序
import requests def make_request(): try: url = 'https://reqres.in/api/users' # 👇️ set verify to False response = requests.get(url, verify=False, timeout=30) parsed = response.json() print(parsed) except Exception as e: print(e) make_request()

代码示例设置禁用 SSL 证书验证的verify关键字参数。False

主程序
response = requests.get(url, verify=False, timeout=30)

如果本地有.pem证书文件,请将verify关键字参数设置为文件路径.pem

主程序
requests.get('https://github.com', verify='/path/to/certfile')

例如,您对 的调用requests.get可能类似于以下内容。

主程序
# http://curl.haxx.se/ca/cacert.pem certificate_file = 'cacert.pem' r = requests.get('https://github.com', verify=certificate_file)

如果您没有证书文件,您可以尝试使用来自http://curl.haxx.se/ca/cacert.pem.pem的证书文件
curl

单击链接下载.pem文件并更新路径。

升级你的版本pip

如果错误仍然存​​在,请运行以下命令之一来升级您的pip
setuptools
wheel版本。

pip install setuptools wheel pip --upgrade # 👇️ for Python 3 pip3 install setuptools wheel pip --upgrade # 👇️ if you don't have pip in your PATH environment variable python -m pip install setuptools wheel pip --upgrade # 👇️ for Python 3 python3 -m pip install setuptools wheel pip --upgrade # 👇️ using py alias (Windows) py -m pip install setuptools wheel pip --upgrade

如果出现权限错误,请运行带有选项的命令--user或在其前面加上sudo.

# 👇️ if you get permissions error pip install setuptools wheel pip --upgrade --user sudo pip install setuptools wheel pip --upgrade

# 创建虚拟环境

要解决错误:

  1. 创建一个虚拟环境。
  2. 激活虚拟环境。
  3. pip install在虚拟环境处于活动状态的情况下运行命令。
# 👇️ use correct version of Python when creating VENV python -m venv venv # 👇️ activate on Unix or MacOS source venv/bin/activate # 👇️ activate on Windows (cmd.exe) venv\Scripts\activate.bat # 👇️ activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # 👇️ install the specific package in the virtual environment pip install numpy

如果该python -m venv venv命令不起作用,请尝试以下 2 个命令:

  • python3 -m venv venv
  • py -m venv venv

确保根据您的操作系统和 shell 使用正确的命令来激活您的虚拟环境。

您的虚拟环境将使用用于创建它的 Python 版本。

您可以在具有以下内容的文件夹中创建pip.conf(Linux、macOS)或pip.ini (Windows)文件。venv
venv/pip.conf
[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org

完成后尝试安装模块。

# 运行命令时指定证书

如果您将证书存储在本地文件中,请--cert在运行pip install命令时使用该选项。

pip --cert </path/to/cert>.pem install <package_name>

例如,完整的命令可能类似于以下内容。

pip --cert /etc/ssl/certs/MY_CERT.pem install requests

确保更正文件路径.pem并替换requests为您要安装的模块的名称。

如果您没有证书文件,您可以尝试使用来自http://curl.haxx.se/ca/cacert.pem.pem的证书文件
curl

单击链接下载.pem文件并更新路径。

如果这些建议都没有帮助,请尝试pip install在详细模式下运行命令。

# 尝试在详细模式下运行 pip install

如果这些建议都没有帮助,请尝试pip install在详细模式下运行命令。

pip install numpy -vvv pip3 install numpy -vvv python -m pip install numpy -vvv

-v选项代表详细模式,最多可以使用 3 次。

pip install命令以详细模式运行时,命令会显示更多输出以及错误发生的方式。