sys:1:资源警告:未关闭的套接字<zmq.Socket(zmq.PUSH) at 0x7f8a5c016d60>

sys:1: ResourceWarning: unclosed socket <zmq.Socket(zmq.PUSH) at 0x7f8a5c016d60>

我是 运行WSL 中的 spyder Ubuntu 18.04 LTS with XLaunch。当我 运行 我的代码(没有空白文件或任何东西)时,我在控制台中收到以下消息: runfile('/home/picky/Research/trans_CGM_Multiprobes.py', wdir='/home/picky/Research') 02-Mar-22 22:18:21: sys:1: ResourceWarning: unclosed socket <zmq.Socket(zmq.PUSH) at 0x7f8a492549a0>

这是什么意思,我该如何解决?

I 运行ning Python 版本 3.9.7 [GCC 7.5.0], 蜘蛛 5.1.5, Ubuntu WSL 上的 18.04 LTS, Qt 5.9.7, PyQT5 5.9.2

代码(无关紧要,因为每次我 f5 到 运行 文件时,都会发生这种情况):

# -*- coding: utf-8 -*-
"""
Author: Patrick
March 3rd 2022
"""

import numpy as np

哪个returns

In[32]:
"""
Author: Patrick
March 3rd 2022
"""

import numpy as np
02-Mar-22 22:35:41: sys:1: ResourceWarning: unclosed socket <zmq.Socket(zmq.PUSH) at 0x7f8a49238f40>

Q :
" What does this mean, and how can I fix it? "

A :
The MEANING : Spyder 是罪魁祸首(除非 WSL 无法模拟 ipc: 在 W10 管道上)
REMEDY :检查是否有更新,如果可用并通知 Spyder 开发人员做更好的 self-healing code-design ,它使用 ZeroMQ best-practices 解锁并释放他们在适当的时候和时尚内部设置的所有资源(无意冒犯,只是还被告知一些最近的 ZeroMQ 本机 API 默认值可能会导致另一个级别 code-refactoring,因为 assumed-only 行为已经开始失败(自我)- 在新的其他默认值开始后执行,这种使用 implicit-only-logic 颠倒了 - zmq.LINGER 是一个这样的潜在原因无限期挂起 zmq.PUSH-socket,而不是被 .close()-ed,正是由于这种 zmq.LINGER-相关行为。

Spyder 和类似的 IDE 工具多年前开始在内部大量使用 ZeroMQ,出于显而易见的原因,这开始导致问题(不仅是当用户实例化自己的 ZeroMQ Context()-s 时)在使用本地主机资源。由于内部 Spyder 崩溃不断出现(有些可以通过 console/IDE soft-reset(s) 挽救,有些则不能)一些 Spyder 对 ZeroMQ 资源的使用并非在所有情况下都以 robust-enough、self-healing 方式——一些内部崩溃确实导致一些 ZeroMQ 资源挂起(正如你在上面看到的)。重启有时是唯一不得不求助的方式,以便最终释放它们