MacOS 10.13.4下Python 2.7.14的pip无法安装任何包求助
你碰到的这个问题非常典型,先把你提供的错误信息贴出来明确场景:
Collecting scrapy
Could not fetch URL https://pypi.python.org/simple/scrapy/: 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 scrapy (from versions: )
No matching distribution found for scrapy
问题根源
PyPI早在多年前就停用了TLS 1.0/1.1这类旧协议,只支持TLS 1.2及以上版本。而你当前使用的pip版本过于老旧,不支持新的安全协议,导致无法和PyPI建立有效连接,自然没法下载安装包。
解决步骤
因为直接用pip install --upgrade pip会因为同样的SSL问题失败,所以得换个方式升级pip:
下载Python2.7专用的pip升级脚本
打开终端执行这条命令:curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py这个脚本是官方为Python2.7专门维护的,能把pip升级到Python2.7兼容的最后一个稳定版本(20.3.4),这个版本是支持TLS1.2的。
运行脚本完成pip升级
执行:python get-pip.py等待升级完成后,你可以用
pip --version确认版本是否更新到20.3.x系列。重新尝试安装Scrapy
现在pip已经能正常连接PyPI了,执行:pip install scrapy应该就能顺利完成安装了。
额外提醒
Python2.7早在2020年就停止了官方维护,包括Scrapy在内的很多主流库也陆续停止了对它的支持。如果你的项目允许,建议尽快升级到Python3.8及以上版本,既能避免这类兼容性问题,也能获得更安全的运行环境和更丰富的功能支持。
内容的提问来源于stack exchange,提问作者IFlyLo

