Windows下如何强制Python虚拟环境使用系统证书存储
让所有Python虚拟环境强制使用Windows系统证书存储的解决方案
公司使用VPN时,系统级Python通过安装pip-system-certs能解决pip证书校验失败的问题,但新建的虚拟环境仍会出现相同的SSL报错。以下是几种全局解决的方法:
方法1:全局配置pip信任PyPI域名(快速临时解决)
在Windows用户目录下创建或修改pip.ini配置文件,让所有pip实例(包括虚拟环境)跳过指定域名的证书校验:
- 打开路径:
C:\Users\<你的用户名>\AppData\Roaming\pip,如果没有pip文件夹就新建一个 - 创建或编辑
pip.ini文件,写入以下内容:
[global] trusted-host = pypi.org pypi.python.org files.pythonhosted.org
保存后,所有虚拟环境的pip安装操作都会自动应用这个配置,不再触发SSL证书错误。
方法2:自动给新虚拟环境安装pip-system-certs(安全彻底)
虚拟环境默认不会继承系统级的pip插件,所以可以修改venv的模板脚本,让新建的虚拟环境自动安装pip-system-certs:
- 找到系统Python的venv模板目录,路径示例:
C:\Python310\Lib\venv\scripts\nt(Python310对应你的Python版本号) - 打开
activate.bat文件,在文件末尾添加以下命令:
pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pip-system-certs >nul 2>&1
以后每次新建并激活虚拟环境时,都会自动静默安装pip-system-certs,虚拟环境的pip就会自动使用Windows系统证书存储,适配VPN环境。
方法3:通过环境变量强制pip使用系统证书
设置全局环境变量,让pip优先使用系统证书:
- 打开Windows系统环境变量设置,新建用户变量或系统变量:
- 变量名:
PIP_USE_SYSTEM_CERTS - 变量值:
1
- 变量名:
- 配合方法2使用,确保虚拟环境安装了
pip-system-certs,就能让pip完全依赖系统证书存储进行校验。
内容的提问来源于stack exchange,提问作者DrDonut
相关产品推荐
相关产品推荐

