首页 > 解决方案 > 在 python3.5 中禁用第三方模块中的所有资源警告发射

问题描述

ResourceWarnings在使用第三方 python 模块时遇到了多个问题,比如 numpy 或 tornado。在不编辑第三方模块的源代码的情况下,我们如何有效地防止ResourceWarnings在终端上显示,因为它们很多。

我已经尝试过这个线程提供的解决方案如何禁用 python 警告无济于事

ResourceWarning发射如下

/usr/local/lib/python3.5/dist-packages/tornado/gen.py:1154: ResourceWarning: unclosed <socket.socket fd=120, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('0.0.0.0', 0)>
self.future, inner)

PS:这些不是我的代码中的警告,它来自第三方模块,这使得在 python3.5 中更难抑制它们。

标签: python-3.xtornado

解决方案


这是在单元测试还是其他环境中?该unittest模块启用所有警告并覆盖其他设置。您可以禁用测试中的警告或者找出未关闭的套接字的来源并确保它正确关闭。

我建议认真对待这些警告,因为如果您看到此警告,您可能会比必要的时间更长时间地持有套接字,并且可能会由于文件描述符用完而在生产中看到错误。


推荐阅读