Win10下pip报SSLError[X509] PEM lib(_ssl.c:4264)无法安装包如何解决
问题原因
- 证书路径匹配异常:Windows 10环境下如果存在全局抓包代理、公司内网加密网关,会要求特定的根证书校验流量,pip默认调用的certifi官方根证书链不包含对应自定义证书,重装certifi仅会覆盖默认证书包,无法自动适配当前网络的证书要求。
- pip配置错误:若之前修改过pip全局配置文件(pip.ini),错误配置了
cert参数指向损坏/不存在的PEM证书文件,会直接触发X509 PEM库解析报错。 - Python SSL模块兼容问题:如果使用的是非官方编译的Python版本,内置的_ssl扩展和Windows系统加密API对接异常,无法正常读取证书链。
修复方案
- 清理错误pip配置:打开路径
%APPDATA%\pip\pip.ini,删除所有cert相关的配置项,仅保留必要的源配置,重启终端后测试普通pip命令是否恢复正常。 - 导入自定义根证书到certifi:如果是内网/代理环境,先导出对应代理/网关的PEM格式根证书,执行命令
python -c "import certifi; print(certifi.where())"获取当前环境certifi证书链路径,将导出的根证书内容追加到该PEM文件末尾即可。 - 配置全局信任主机:如果不需要严格校验SSL证书,可在pip.ini中添加以下配置,后续无需每次手动加信任参数:
[global] trusted-host = pypi.org files.pythonhosted.org
- 重装官方Python版本:上述操作无效的情况下,卸载当前Python,从Python官网下载正式Windows安装包重装,完成后执行
python -m pip install --upgrade pip升级到最新版pip,再测试安装操作。
内容的提问来源于stack exchange,提问作者pu239
相关产品推荐
相关产品推荐

