- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个用 Python 编写的 Reddit 机器人,有时我会收到以下错误:
sys:1: ResourceWarning: unclosed ssl.SSLSocket fd=4, family=AddressFamily.AF_INET, type=2049, proto=6, laddr=('192.168.1.113', 55513), raddr=('198.41.209.140', 443)>
192.168.1.113
是我的本地 IP,198.41.209.140
显然是 CloudFlare 的 IP
我有时也会收到以下错误,这让我认为问题与 SSL 有关?
Error EOF occurred in violation of protocol (_ssl.c:598)
我该如何解决这个问题?
编辑:如何查看我的代码的哪一部分导致了这个问题?我在 try/except 中有一个异常,将所有异常打印为:
except Exception as e:
print("Login/API Error", e)
但是我得到的所有错误都没有这个,这意味着它不是异常(exception)?
最佳答案
我没有在自己的代码中使用套接字,所以下面是基于我的一般 Python 知识。
套接字文档没有说 socket.socket
实例是上下文管理器,但该类具有必需的 __enter__
和 __exit__
方法。两者都是标准的、最小的实现。您可能希望继承 socket 或 SSLSocket 以在 __exit__
中执行更多操作,例如打印您的替代品以进行回溯。但首先,您需要查看完整的回溯。子类 SSLSocket
继承了这两种方法。由于 SSLSocket “包装”了一个套接字,显然有两个对象需要关注。因此,对于代码的顶层结构,我将从以下内容(显然未经测试)开始:
<preliminary code>
with socket.socket(...) as sock # or other socket-returning function
<more preparation>
with ssl.wrap_socket(sock, ...) as SSLsock # or the context function
<use SSLsock to communicate>
您收到的错误消息应该以 SSLEOFError
为前缀。是吗?文档说“当 SSL 连接突然终止时引发的 SSLError 的子类。通常,遇到此错误时,您不应尝试重用底层传输。”这绝对是一个异常(exception)。
>>> issubclass(ssl.SSLEOFError, Exception)
True
什么可能会促使 Cloudfare ‘突然’终止连接?协议(protocol)处理中的错误; ssl.py 中的错误?您的机器人是否以某种方式违反了服务条款?
如果你不能在这里得到你需要的所有答案,我会尝试 python-list
,也可以作为新闻组 gmane.comp.python.general
访问 >news.gmane.org
。它的参与者具有网络经验。
关于 python 3 : ResourceWarning Unclosed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34518251/
我正在准备测试,运行此脚本后出现一个警告: class TestForm(unittest.TestCase): def setUp(self): with open('tes
我有一个用 Python 编写的 Reddit 机器人,有时我会收到以下错误: sys:1: ResourceWarning: unclosed ssl.SSLSocket fd=4, family=
我正在移植 library到 Python3。弹出的问题之一是所有 "unclosed file" warnings运行测试套件时。我已经解决了 95% 的警告,但还有一些警告仍然存在,我正在努力寻找
我正在使用Python 3.6.1运行一些单元测试并获得ResourceWarning ResourceWarning: unclosed 代码的端口和区域指示它是memcached,而我使用的是p
我正在使用 asyncio 客户端连接服务器,然后断开连接。 如果我连接到同一台计算机上的服务器程序, 连接正常关闭。 添加:当我开始向连接写入数据时,此连接也开始提供警告有时。请参阅下面的第二个代码
有没有办法强制 Python 3 单元测试失败,而不是简单地向 stderr 打印警告,如果它导致任何 ResourceWarning? 我试过以下方法: import warnings warnin
我正在修改一些代码以在 Python 2 和 Python 3 之间兼容,但在单元测试输出中观察到警告。 /Library/Frameworks/Python.framework/Versions/3
我的 Django 1.8/Python 3.4 设置有问题。运行时 python -Wall ./manage.py runserver 我收到以下警告: /lib/python3.4/loggin
我正在使用 urllib.request.urlopen() 从我正在尝试测试的 Web 服务获取 GET。 这会返回一个 HTTPResponse 对象,然后我会通过 read() 获取响应主体。
我正在使用 BrowserStack 在 Python 中运行 Selenium 脚本。请记住,我是 Python 新手,所以也许有一个我没有看到的简单解决方案。 可以看到代码here 当我运行它时,
遵循How to terminate a python subprocess launched with shell=True的建议 我有一个从以下开始的流程 process = subprocess
当我运行单元测试时,我在以下代码中的“ Logo ”图像上收到 Python 3 未关闭缓冲区错误。如何正确关闭 Logo 图像缓冲区?请注意 Image 类来自 reportlab.platypus
当我使用 "python normalizer/setup.py test 在 python 中运行测试用例时" 我得到以下异常 ResourceWarning: unclosed file 在代
当我在 Python3 上使用 Pillow(3.3.0 版,通过 pip 安装)将图像数据加载到 numpy 数组中时,我的单元测试报告了 ResourceWarning。例如,当我运行以下脚本时会
我有一个在 Ubuntu 16 上运行良好的 python 代码。我安装了 Ubuntu 18,现在当我在执行 unitest 时尝试调试代码时,每次按“n”或“s”时都会收到以下警告: ipdb>
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class
我是一名优秀的程序员,十分优秀!