pip安装第三方库moviepy报错SSL: CERTIFICATE_VERIFY_FAILED

 请勿走弯路。快速判断

1、PIP10以后的版本早就修复该问题,如果自己的版本过低

可以通过设置pypi.orgfiles.pythonhosted.org作为可信赖的主机。

2、优先检查自己的网络,是否开抓包,是否设置代理

以下是我走的弯路,虽然很快发现,才恍然大悟,希望汲取教训。特别是做测试的同学,经常喜欢开代理或者是抓包工具。

如果你是测试同学,或者是有兴趣学习测试的同学,可加入QQ测试进阶3群:363550351

pip install moviepy==1.0.2

Could not fetch URL https://pypi.org/simple/moviepy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/moviepy/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)'))) - skipping

当报错这个第一反应,请求https确实证书,不信任。

加信任就好:pip --trusted-host pypi.python.org install moviepy

 pip --trusted-host pypi.python.org install moviepy  

Could not fetch URL https://pypi.org/simple/moviepy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/moviepy/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)'))) - skipping
ERROR: Could not find a version that satisfies the requirement moviepy (from versions: none)
ERROR: No matching distribution found for moviepy

接着信任  pip  install --trusted-host pypi.org  --trusted-host files.pythonhosted.org moviepy

pip  install --trusted-host pypi.org  --trusted-host files.pythonhosted.org moviepy

ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/71/64/e7f0876716d5c35612bf8e9e49299d0f491285f10f36cbb481556ab0062b/moviepy-1.0.2.tar.gz (Caused by ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)"))

这个时候应该醒悟,如果是证书错误,这个域名下的,早就不能安装了,由于刚刚新笔记本不应该有类似问题。

排查网络发现自己开了代理。 

### 解决 Windows 下 pip 遇到 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` 即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值