使用pip安装模块遇SSL错误,按通用方案操作仍失败求排查
这事儿其实很明确,核心原因就是PyPI已经完全禁用了HTTP明文访问,强制要求使用HTTPS协议。
你最开始用的命令里指定了http://pypi.python.org/simple/这个HTTP地址,当pip向这个地址发送请求时,PyPI服务器直接返回了403 Forbidden错误,从你的报错日志里也能看到明确提示:
Could not fetch URL http://pypi.python.org/simple/sphinx/: 403 Client Error: SSL is required for url: http://pypi.python.org/simple/sphinx/ - skipping
这个提示已经把问题说透了:PyPI现在不接受HTTP请求,必须用SSL加密的HTTPS连接才行。
网上找到的那个“通用解决方案”应该是比较旧的内容了——几年前PyPI确实允许HTTP访问,当时这个命令是有效的,但现在官方为了安全,已经彻底关闭了HTTP的访问通道,所以旧方法自然失效。
你后来换成https://pypi.python.org/simple/(把http改成https),再配合--trusted-host pypi.python.org让pip信任这个主机的SSL证书,就能正常建立安全连接,获取Sphinx包的索引信息,所以安装就成功了。
另外提个小建议:现在PyPI的官方推荐地址是https://pypi.org/simple/,pypi.python.org是旧域名,虽然目前还能访问,但官方已经逐步迁移到pypi.org,之后可以优先用新地址哦。
内容的提问来源于stack exchange,提问作者Ephreal




