Windows 10 和 Spyder 上的 Python 错误 [SSL: CERTIFICATE_VERIFY_FAILED]

Posted

技术标签:

【中文标题】Windows 10 和 Spyder 上的 Python 错误 [SSL: CERTIFICATE_VERIFY_FAILED]【英文标题】:Python error [SSL: CERTIFICATE_VERIFY_FAILED] on Windows 10 and Spyder 【发布时间】:2022-01-18 05:33:21 【问题描述】:

我上次在 2021 年 1 月运行以下代码时,在 Spyder 3.x / Windows 10 上运行正常。当我本周尝试运行它时,我遇到了许多导致这个最终错误的错误:

URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1056)>

在尝试解决问题的过程中,我从 Spyder 3 更新到 Spyder 5.1.5,但问题仍然存在。

我认为这是最小的可重现示例:

import urllib.request
my_url = 'https://***.com/'
html = urllib.request.urlopen(my_url).read()
print(html)

问题出在代码的第三行。 print 语句仅验证我们已经超越了这一点。它发生在某些网站上,但不是其他网站,例如如果 start_url = ***.com 会出现问题,但如果我将其设置为“https://en.wikipedia.org/wiki/Main_Page”则不会。

有趣的是,当我在 Linux 上的 Spyder 3.2.6 上运行它时,不会出现相同的代码和错误。

问题:

有什么建议吗?

背景信息

我注意到 *** 上有很多关于 [SSL: CERTIFICATE_VERIFY_FAILED] 错误的问题,但我不知道如何将他们的答案应用于我的情况。有些适用于 Mac OS 或 linux 并建议输入

[path] Install\ Certificates.command

所以我不知道如何为 Windows 10 执行此操作,更不用说如何识别路径了。鉴于 Windows 10 上的 Anaconda/Spyder 链,我还发现自己对如何安装 PIP(在某些解决方案中建议)感到困惑。

更多背景

我正在使用 Spyder IDE 5.1.5,Spyder 帮助框有关于 python 等的说明:

Python 3.7.3 64-bit | Qt 5.9.6 | PyQt5 5.9.2 | Windows 10 

虽然我很惊讶,但它并没有提到我通过 Anaconda 安装了 Spyder。更令人困惑的是,当我在 windows cmd 提示符下键入“python -version”时,我得到了错误:

Python was not found; run without arguments to install from the Microsoft Store....

...这似乎很奇怪,因为 Spyder 显然可以运行其他 python 代码。

【问题讨论】:

【参考方案1】:

这个问题主要是由旧的 Let's Encrypt 根证书到期带来的,因为它们已迁移到 ISRG Root X1。您可以尝试从https://letsencrypt.org/certificates/ 安装有效证书

【讨论】:

以上是关于Windows 10 和 Spyder 上的 Python 错误 [SSL: CERTIFICATE_VERIFY_FAILED]的主要内容,如果未能解决你的问题,请参考以下文章

windows spyder 运行 py 文件时出现无效语法错误

为什么Spyder 2.2.5在非py脚本上没有使用语法颜色方案?

在 Windows 10 上 Pip 安装 Spyder(无法启动)

Big Sur 上的 2019 Macbook Pro + 最新版 Spyder 上的 Pandas 导入错误

Python spyder + tensorflow 交叉验证在 Windows 10 上冻结

使用 Spyder 3.3 无法在 input() 中捕获 Ctrl+C