Windows环境下Pip SSL证书验证失败问题求助
兄弟,我太懂这种Windows 7下Python pip SSL报错的痛苦了!之前你用--trusted-host pypi.python.org管用,现在突然失效,大概率是PyPI的域名和证书体系更新了——原来的pypi.python.org现在其实是重定向到pypi.org,但Win7的老SSL库跟不上新证书,而且只加旧域名的trusted-host已经覆盖不到新的下载源了。给你几个靠谱的解决办法:
临时应急:补全所有需要信任的PyPI域名
现在PyPI的包下载不仅用到pypi.python.org,还会用到pypi.org和files.pythonhosted.org,所以把这些域名都加入trusted-host试试:pip install pytubes --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --no-cache-dir加
--no-cache-dir是为了清除之前缓存的错误请求记录,避免旧数据干扰。全局配置一劳永逸
不想每次输长命令的话,可以配置pip的全局设置:- 在你的Windows用户目录(比如
C:\Users\你的用户名)下新建一个名为pip的文件夹 - 在这个文件夹里创建
pip.ini文件,写入以下内容:[global] trusted-host = pypi.python.org pypi.org files.pythonhosted.org
之后所有pip命令都会自动应用这些信任域名,不用再手动加参数。
- 在你的Windows用户目录(比如
跳过证书验证(不推荐,仅临时用)
如果上面的方法还是不行,实在紧急的话可以强制pip跳过SSL证书验证,但这个操作有安全风险,只建议在你完全信任的环境下使用:pip install pytubes --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org --ignore-installed --no-cache-dir --ssl-no-revoke或者更直接的:
pip install pytubes --no-verify-ssl深层解决:更新系统根证书(Win7专属)
Windows 7已经停止官方支持,自带的根证书库很旧,可能无法识别PyPI的新SSL证书。你可以手动下载并安装最新的根证书包(微软曾经发布过Win7的根证书更新包),不过这个操作需要管理员权限,而且找起来有点麻烦。如果长期用Python,更建议考虑升级到Windows 10/11,毕竟Win7的安全风险太高了。
内容的提问来源于stack exchange,提问作者Alexander

