windows pip 安装报sslerror [SSL: CERTIFICA TE_VERIFY_FAILED]

本文详细记录了在使用PIP安装模块时遇到SSL模块缺失的问题及解决过程。作者尝试了多种解决方案,包括重装SSL模块、本地安装wheel包,最终通过配置国内PYPI镜像成功解决问题。文中提供了具体的配置步骤和多个国内镜像服务器供参考。

今天用PIP安装一个新的模块库,突然报告说PIP install 时 报需要SSL模块,HTTPS 服务错

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avaiable.

一开始以为SSL坏了,在Python 里 import ssl 一试, 说找不到PROTOCOL_SSLv2。于是重装SSL N遍, 都报SSL 错。

折腾好久,放弃SSL了。 去网上直接下wheel 本地安装。 结果本地安装仍然要各种组件(原来都是PIP自己下的),搞得没脾气。

最后尝试用国内的PYPI镜像解决了问题。原文如下。 国内的镜像服务器不要HTTPS 访问。

https://blog.youkuaiyun.com/testcs_dn/article/details/54374849

windows下配制成默认的配置,随便选一个服务器即可

在你的“C:\Users\你的用户名\”目录下创建“pip”目录,“pip”目录下创建“pip.ini”文件(注意:以UTF-8 无BOM格式编码);
“pip.ini”文件内容:

[global]

index-url=http://mirrors.aliyun.com/pypi/simple/

[install]

trusted-host=mirrors.aliyun.com

 

国内镜像
http://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustunique.com/simple/ 华中理工大学
http://pypi.sdutlinux.org/simple/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/simple 清华

原文:https://blog.youkuaiyun.com/fumingf1/article/details/81273079 
 

### 解决 Windowspip 遇到 SSL 证书验证失败的问题 当在 Windows 上使用 `pip` 安装 Python 包时,如果遇到 `SSL CERTIFICATE_VERIFY_FAILED` 错误,通常是因为 pip 无法找到有效的 CA (Certificate Authority) 证书来验证服务器的身份。这可能是由于系统缺少更新的根证书或网络配置问题。 #### 方法一:安装最新版本的 `certifi` Python 的 `requests` 库依赖于 `certifi` 来提供默认的信任库。通过升级 `certifi` 可以确保拥有最新的受信任CA列表: ```bash python -m pip install --upgrade certifi ``` 此命令会下载并安装最新版的 `certifi`,从而可能修复因过期或缺失的根证书引起的 SSL 认证失败[^1]。 #### 方法二:指定自定义的 CA Bundle 文件路径 有时即使有了最新的 `certifi`,仍然可能会碰到某些特殊环境下的认证问题。这时可以尝试手动指定期望使用的 CA bundle 文件位置: ```bash pip install somepackage --cert path\to\cacert.pem ``` 这里的 `path\to\cacert.pem` 是指向一个包含所需全部中间件和根证书的PEM格式文件的位置。对于大多数情况来说,可以直接使用由 `certifi` 提供的那个文件作为参数传递给 `--cert` 参数[^2]。 #### 方法三:禁用 SSL 验证(仅限开发测试) 虽然不推荐这样做,但在某些情况下为了快速解决问题可以选择暂时关闭 SSL 验证。请注意,在生产环境中绝对不应该这么做! ```bash pip install package_name --trusted-host pypi.org --trusted-host files.pythonhosted.org ``` 上述命令告诉 pip 不要对指定主机执行 SSL/TLS 验证,但这会使连接变得不再安全,并可能导致中间人攻击的风险增加[^3]。 #### 方法四:调整系统的日期时间设置 错误的时间也可能引发 SSL 握手过程中的校验异常。因此确认计算机当前时间和日期是否正确非常重要。可以通过如下方式修改系统时间为标准协调世界时(UTC): ```cmd date MMddyyHHmm ``` 例如将时间设为 2024 年 11 月 21 日下午 4 点整,则输入 `date 1121241600` 即可。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值