【发布时间】: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://stackoverflow.com/'
html = urllib.request.urlopen(my_url).read()
print(html)
问题出在代码的第三行。 print 语句仅验证我们已经超越了这一点。它发生在某些网站上,但不是其他网站,例如如果 start_url = stackoverflow.com 会出现问题,但如果我将其设置为“https://en.wikipedia.org/wiki/Main_Page”则不会。
有趣的是,当我在 Linux 上的 Spyder 3.2.6 上运行它时,不会出现相同的代码和错误。
问题:
有什么建议吗?
背景信息
我注意到 StackOverflow 上有很多关于 [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 代码。
【问题讨论】:
标签: python windows-10 ssl-certificate spyder