请教个问题,使用全局代理后运行程序出现这个 requests.exceptions.SSLError

2020-12-22 21:59:12 +08:00
 huchenlu
出现这个错误
requests.exceptions.SSLError: HTTPSConnectionPool(host='markmakovey.artstation.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)')))

两台电脑,另一边可以,用的是 Python3.7,今天新装的 3.9 这边不行,拷贝 3.7 的文件也不行,代理是同一个软件 同一个节点,该装的 requests 库也都安装了。。网上查了查也没个办法,实在搞不定了,有知道这个问题的兄弟吗?
4798 次点击
所在节点    Python
7 条回复
huchenlu
2020-12-22 22:05:46 +08:00
cryptography 、pyOpenSSL 、certifi 三个库也都是安装了的,代码是别人的, 网上说的 verify=False,我改了没效果,不知道是不是没改对。
among
2020-12-22 22:44:55 +08:00
可能是系统的 openssl 模块上有差异。
huchenlu
2020-12-22 22:52:05 +08:00
@among 给他降级试了试...好像不行,有啥办法吗?
huchenlu
2020-12-22 23:04:34 +08:00
@among ...应该确定是库的问题了,我之前删除 3.9 的时候没发现他库还在,这次删除干净,复制 3.7 可以用了。
SekiBetu
2022-04-28 02:18:40 +08:00
傻卵开发组的傻卵更新,干脆用阿里源了
SekiBetu
2022-05-14 02:05:26 +08:00
https://github.com/python/cpython/issues/86793

https://github.com/python/cpython/pull/26307

已经修复,等待 python 3.9 3.10 3.11 版本的下一次更新
SekiBetu
2022-05-14 02:12:10 +08:00
在更新前可以给 cmd powershell 等终端环境添加代理变量

举例:

cmd 中 `set https_proxy=http://127.0.0.1:2081`

powershell 中 `$env:https_proxy="http://127.0.0.1:2081"`

注意是让 https 代理使用 http 协议连接,因为你的代理软件在本地传递流量的过程可能不支持 https ,开发组平时不用代理的,不知道这一点
urlib 原本是不支持 https 代理的,所以一直是用 http 协议传递本地的流量给代理软件,而在某次更新之后支持了,而你的代理软件在本地是不需要 https 来传递流量的,所以炸了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738031

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX