V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
huchenlu
V2EX  ›  Python

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

  •  
  •   huchenlu · 2020-12-22 21:59:12 +08:00 · 4374 次点击
    这是一个创建于 1191 天前的主题,其中的信息可能已经有所发展或是发生改变。
    出现这个错误
    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 库也都安装了。。网上查了查也没个办法,实在搞不定了,有知道这个问题的兄弟吗?
    7 条回复    2022-05-14 02:12:10 +08:00
    huchenlu
        1
    huchenlu  
    OP
       2020-12-22 22:05:46 +08:00
    cryptography 、pyOpenSSL 、certifi 三个库也都是安装了的,代码是别人的, 网上说的 verify=False,我改了没效果,不知道是不是没改对。
    among
        2
    among  
       2020-12-22 22:44:55 +08:00
    可能是系统的 openssl 模块上有差异。
    huchenlu
        3
    huchenlu  
    OP
       2020-12-22 22:52:05 +08:00
    @among 给他降级试了试...好像不行,有啥办法吗?
    huchenlu
        4
    huchenlu  
    OP
       2020-12-22 23:04:34 +08:00
    @among ...应该确定是库的问题了,我之前删除 3.9 的时候没发现他库还在,这次删除干净,复制 3.7 可以用了。
    SekiBetu
        5
    SekiBetu  
       2022-04-28 02:18:40 +08:00
    傻卵开发组的傻卵更新,干脆用阿里源了
    SekiBetu
        6
    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
        7
    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 来传递流量的,所以炸了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5497 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:25 · PVG 16:25 · LAX 01:25 · JFK 04:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.