目录
[Fixed] Connection error: [SSL: CERTIFICATE_VERIFY_FAILED]
- 连接错误:[SSL CERTIFICATE_VERIFY_FAILED]
- 将受信任的主机添加到您的 pip.conf 或 pip.ini 文件
- 使用命令更新
pip.ini
文件 - 使用时禁用 SSL 证书验证
requests
- 升级你的版本
pip
- 创建虚拟环境
- 运行命令时指定证书
- 尝试以详细模式运行 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
.
$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.conf
orpip.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
orpip.ini
文件并打印文件的位置。这非常方便,因为在您的操作系统上查找pip.conf
或文件可能比预期的要困难。pip.ini
如果您无法找到pip.conf
或pip.ini
文件并希望手动添加受信任主机,请运行该pip config -v list
命令。
pip config -v list pip3 config -v list
一旦trusted-host
在pip.conf
orpip.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
如果您在使用模块时遇到错误requests
,requests
无法验证站点的 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
# 创建虚拟环境
要解决错误:
- 创建一个虚拟环境。
- 激活虚拟环境。
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
[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
命令以详细模式运行时,命令会显示更多输出以及错误发生的方式。