境外MacOS环境下安装pip遇SSL错误,求解决方案
解决
sudo easy_install pip遇到的TLS协议版本错误 嘿,这个[SSL: TLSV1_ALERT_PROTOCOL_VERSION]错误我之前帮不少人排查过,核心问题不是你在美国境外,而是你的Python版本太老了!
具体来说,Python 2.7.9之前的版本默认只支持TLS 1.0/1.1这些老旧的加密协议,但PyPI早在好几年前就彻底停用了这些不安全的协议,只接受TLS 1.2及以上的连接请求,所以你的easy_install根本连不上PyPI的服务器,才会报这个错。
下面给你几个靠谱的解决办法,按优先级排序:
1. 优先升级Python(最稳妥的方案)
- 如果你用的是Python 2.x:直接升级到Python 2.7.18(这是Python 2的最终维护版本),它默认支持TLS 1.2+,升级完再跑
sudo easy_install pip就正常了。 - 更建议直接切换到Python 3.x:Python 2已经停止维护好几年了,现在主流的Python 3版本(3.6及以上)都完美支持新的TLS协议,后续也不会再遇到这类协议兼容问题。
2. 手动安装pip(没法升级Python时用)
如果因为环境限制暂时没法升级Python,可以手动下载pip的安装包本地安装:
- 先找对应你Python版本的pip包:比如pip 20.3.4是最后支持Python 2.7的版本,下载它的
tar.gz压缩包 - 解压后进入目录,用本地Python执行安装:
tar -xzf pip-20.3.4.tar.gz cd pip-20.3.4 sudo python setup.py install
3. 临时应急方案(不推荐,有安全风险)
有些旧环境可以通过设置环境变量强制使用TLS 1.2,但这个方法不是所有情况都有效,而且跳过了证书验证,有安全隐患,只适合临时救急:
sudo SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt PYTHONHTTPSVERIFY=0 easy_install pip
内容的提问来源于stack exchange,提问作者jschangg
相关产品推荐
相关产品推荐

