MacOS下安装virtualenv遇SSL/TLS证书验证问题求助
无法在Mac上通过pip安装virtualenv,报错TLSV1_ALERT_PROTOCOL_VERSION
我在Mac上尝试安装Python的virtualenv,每次执行命令:
$ pip install virtualenv
都会收到如下报错:
Collecting virtualenv Could not fetch URL https://pypi.python.org/simple/virtualenv/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:661) - skipping Could not find a version that satisfies the requirement virtualenv (from versions: ) No matching distribution found for virtualenv
我查了很多资料试了各种方法都没解决,想问问有没有人遇到过类似情况,怎么成功安装并正常使用的?
亲测有效的解决方案
这个报错的核心原因是旧版本的pip不支持PyPI当前要求的TLS 1.2/1.3协议——PyPI早已停用了安全性较低的TLSv1和TLSv1.1,而你的pip版本太老,无法建立符合要求的安全连接。下面几个方法都能解决问题:
方法一:临时绕过SSL验证升级pip
如果你的pip还能执行基本命令,先把它升级到最新版:
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org --upgrade pip
完成升级后再安装virtualenv就正常了:
pip install virtualenv
方法二:用官方脚本重装pip
要是pip旧到连升级命令都跑失败,直接用官方提供的脚本重装:
- 用curl下载get-pip.py脚本,若遇SSL错误就添加
--tlsv1.2参数强制使用新协议:curl --tlsv1.2 https://bootstrap.pypa.io/get-pip.py -o get-pip.py - 运行脚本安装最新版pip:
python get-pip.py - 之后再执行virtualenv的安装命令即可:
pip install virtualenv
方法三:升级Python版本(长期推荐)
如果你用的是Python 2.7或者Python 3.4及以下的老版本,自带的pip和SSL库天生不支持现代TLS协议。直接升级到Python 3.7+的版本,新版Python会自带适配PyPI的pip,之后安装virtualenv就不会再出现这类问题。
方法四:用Homebrew安装(Mac专属捷径)
如果你的Mac上已经装了Homebrew,直接用brew安装virtualenv更省心,完全绕开系统自带Python的兼容性问题:
brew install virtualenv
内容的提问来源于stack exchange,提问作者Marcus Vinicius Melo
相关产品推荐
相关产品推荐

