不升级Python2.7.6,解决pip安装SSL错误的方法咨询
解决Python 2.7.6安装pip的SSL问题(无需升级Python)
你碰到的这个问题我太熟悉了——Python 2.7.6自带的SSL模块实在太老,不支持PyPI现在要求的TLS 1.2及以上协议,还缺了SNI(服务器名称指示)支持,自然连不上安全源。不用升级Python也能搞定,跟着下面的步骤来:
步骤1:拿到适配Python 2.7的get-pip.py脚本
新版get-pip早就放弃支持Python 2.7了,你得找最后支持它的版本——也就是pip 20.3.4对应的安装脚本,这是官方认可的最后兼容Python 2.7的pip版本。
步骤2:手动装三个SSL增强包
Python 2.7.6的SSL能力不够,得先补三个包来提升SSL兼容性,这些包都有专门支持Python 2.7的版本,你需要手动下载它们的源码包或者wheel包:
- pyopenssl(19.1.0版本,是支持Python 2.7的最后一版)
- ndg-httpsclient(0.5.1版本)
- pyasn1(0.4.8版本)
下载完成后,打开命令行进入每个包的目录,运行命令安装:
python setup.py install
如果下的是wheel包(.whl格式),也可以用这个命令:
python -m pip install 文件名.whl
(注:如果还没装pip,优先用setup.py install的方式来装)
步骤3:运行get-pip.py安装pip
等三个SSL增强包装完,你的Python就具备连接PyPI的SSL能力了,这时再运行之前下载的适配版get-pip.py:
python .\get-pip.py
额外小提示
- 装完pip后,以后用它装库的时候,尽量找支持Python 2.7的旧版库,毕竟新版库大多都不兼容Python 2.7了。
- 如果还是碰到连接问题,可以试试在pip命令后面加
--trusted-host pypi.org --trusted-host files.pythonhosted.org,强制信任PyPI的主机,绕开部分证书验证问题。
内容的提问来源于stack exchange,提问作者Eduardo




