MacOS Sierra下Python 3.5启用TLS1.2解决pip证书报错问题
解决Python 3.5环境下pip SSL证书协议版本报错的问题
嘿,这个问题我之前帮不少开发者搞定过——核心原因就是你的pip版本太老旧,不支持PyPI现在强制要求的TLS 1.2/1.3协议。虽然Python 3.5本身是支持TLS 1.2的,但它配套的pip版本默认还是用TLS 1.0/1.1,而PyPI早在几年前就彻底停用了这些不安全的旧协议,所以不管是virtualenv里还是系统级的pip3都会触发这个SSL错误。下面给你几个靠谱的解决办法:
方法一:手动升级pip(最推荐,一劳永逸)
直接用pip install --upgrade pip肯定会因为SSL错误失败,所以咱们换个方式,用官方的脚本升级:
- 打开终端,先下载针对Python 3.5的pip升级脚本:
(这个脚本是官方专门给停止维护的Python 3.5提供的,确保能兼容旧版本)curl https://bootstrap.pypa.io/pip/3.5/get-pip.py -o get-pip.py - 然后分情况运行脚本:
- 如果是修复系统的Python 3.5:
python3.5 get-pip.py - 如果是修复virtualenv环境,先激活你的虚拟环境再运行:
source /path/to/your/virtualenv/bin/activate python get-pip.py
- 如果是修复系统的Python 3.5:
- 升级完成后,再试
pip install django,应该就不会再跳SSL错误了。
方法二:临时应急方案(不推荐长期用)
如果你暂时没时间升级pip,也可以临时绕开SSL验证,但注意这有安全风险:
- 直接在pip命令里添加信任主机参数:
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org django - 或者临时关闭SSL证书验证(仅应急,用完记得取消):
取消环境变量的命令:export PYTHONHTTPSVERIFY=0 pip install djangounset PYTHONHTTPSVERIFY
额外建议:考虑升级Python版本
Python 3.5早在2020年9月就停止了官方的安全更新和维护,后续还可能遇到更多类似的兼容性问题。如果你的项目允许,建议升级到Python 3.8及以上的稳定版本——这些版本的pip默认就支持TLS 1.2+,而且能获得持续的安全更新,从根源上避免这类问题。升级后重新创建virtualenv环境就行。
内容的提问来源于stack exchange,提问作者Adam Starrh




