Python3.10用PIP安装包报SSL: WRONG_VERSION_NUMBER错误如何解决?
排查与配置方案
PIP/Python端配置
- 临时验证方案:执行如下命令测试安装是否正常,该命令会临时信任pypi官方源域名
pip install requests --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org
- 全局PIP配置:Windows系统下进入当前用户根目录,新建
pip文件夹,在文件夹内创建pip.ini配置文件,写入如下内容强制PIP使用TLS 1.2并信任官方源域名:
[global] trusted-host = pypi.org pypi.python.org files.pythonhosted.org ssl-version = tls1_2
- 代理排查:如果当前服务器配置了HTTP/HTTPS代理,优先确认代理服务是否支持TLS 1.2及以上版本的请求转发,也可以在上述
pip.ini中补充正确的代理配置:
[global] proxy = http://你的代理地址:端口 # 如有账号密码则用下面的格式 # proxy = http://用户名:密码@代理地址:端口
服务器端补充配置
你已经通过IIS Crypto开启了系统TLS 1.2支持,可补充以下两项配置覆盖所有系统调用场景:
- 检查SCHANNEL注册表配置:打开注册表编辑器,定位到路径
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client,确认存在两个DWORD值:DisabledByDefault设为0,Enabled设为1,如路径不存在可逐级手动创建项和对应值。 - 配置.NET Framework强加密:定位到注册表路径
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319,新建名为SchUseStrongCrypto的DWORD值,设为1;如果是64位系统,还需要在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319路径下添加相同的DWORD值。
验证方法
执行如下Python代码验证网络链路是否正常,如返回状态码200则说明底层TLS握手正常,问题仅出在PIP配置侧:
import requests print(requests.get("https://pypi.org/simple/requests/").status_code)
内容的提问来源于stack exchange,提问作者user625079
相关产品推荐
相关产品推荐

