You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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升级脚本:
    curl https://bootstrap.pypa.io/pip/3.5/get-pip.py -o get-pip.py
    
    (这个脚本是官方专门给停止维护的Python 3.5提供的,确保能兼容旧版本)
  • 然后分情况运行脚本:
    • 如果是修复系统的Python 3.5:
      python3.5 get-pip.py
      
    • 如果是修复virtualenv环境,先激活你的虚拟环境再运行:
      source /path/to/your/virtualenv/bin/activate
      python get-pip.py
      
  • 升级完成后,再试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 django
    
    取消环境变量的命令:unset PYTHONHTTPSVERIFY

额外建议:考虑升级Python版本

Python 3.5早在2020年9月就停止了官方的安全更新和维护,后续还可能遇到更多类似的兼容性问题。如果你的项目允许,建议升级到Python 3.8及以上的稳定版本——这些版本的pip默认就支持TLS 1.2+,而且能获得持续的安全更新,从根源上避免这类问题。升级后重新创建virtualenv环境就行。

内容的提问来源于stack exchange,提问作者Adam Starrh

火山引擎 最新活动