升级pip遇SSL: CERTIFICATE_VERIFY_FAILED错误,求解决方案
错误含义
这条错误是说,pip尝试连接PyPI的文件服务器(files.pythonhosted.org)下载新版pip包时,SSL证书验证未通过。核心原因是你的网络环境里存在自签名证书(比如公司内网代理、防火墙生成的证书),而Python默认的证书信任列表中没有收录该证书,导致安全连接无法建立,重试多次后最终报错。
提示里的Requirement already satisfied只是说明当前已安装pip 23.0版本,并非报错根源,真正问题出在后续下载新版时的SSL验证环节。
解决方法
临时跳过SSL验证(仅限信任环境使用)
执行升级命令时添加可信主机参数,让pip跳过对PyPI相关域名的SSL验证:python.exe -m pip install --upgrade pip --trusted-host pypi.org --trusted-host files.pythonhosted.org也可以直接使用
--no-verify-ssl参数,但指定可信主机的方式相对更安全。将自签名证书添加到Python信任列表
找到Python安装目录下的Lib\site-packages\certifi\cacert.pem文件,把你的自签名证书内容追加到文件末尾,保存后重新执行升级命令即可。
或者设置系统环境变量REQUESTS_CA_BUNDLE,值设为你的自签名证书文件的绝对路径。改用国内PyPI镜像源
国内镜像源通常不存在SSL证书问题,且下载速度更快,执行以下命令即可:python.exe -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple检查并配置代理证书
如果通过代理上网,先确认代理证书已被系统信任,也可以在pip配置中直接指定代理和证书:
在Windows用户目录下创建pip\pip.ini文件(Linux/macOS为~/.pip/pip.conf),写入以下内容(替换为你的代理信息和证书路径):[global] proxy = http://your-proxy-address:port cert = C:/path/to/your/certificate.pem
内容的提问来源于stack exchange,提问作者luissuarez

