为什么我的代码在将manager.dict对象作为参数传递时返回断管错误?

2024-09-30 04:27:59 发布

您现在位置:Python中文网/ 问答频道 /正文

运行以下功能时:

#returns list of hostIds on network;
def getHostsOnNetwork(surveyResults, hosts):
    notifEnabledMacs = [host['macAddr']
        for host in hosts.values()
        if host['notificationEnabled']
   ]
    macsOnNetwork = [host['mac'] for host in surveyResults]

    return [host['id']
        for host in hosts.values()
        if host['macAddr'] in macsOnNetwork
    ]

我将manager.dict对象作为“主机”传递。因此,我收到以下错误:

 Traceback (most recent call last):
   File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
     self.run()
   File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
     self._target(*self._args, **self._kwargs)
   File "main.py", line 101, in notifsProducer
     oldHostSet = currentHostSet
   File "/home/patrick/notificationApp;/networking.py", line 82, in getHostsOnNetwork
     for host in hosts.values()
   File "<string>", line 2, in values
   File "/usr/lib/python3.8/multiprocessing/managers.py", line 834, in _callmethod
     conn.send((self._id, methodname, args, kwds))
   File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
     self._send_bytes(_ForkingPickler.dumps(obj))
   File "/usr/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
     self._send(header + buf)
   File "/usr/lib/python3.8/multiprocessing/connection.py", line 368, in _send
     n = write(self._handle, buf)
 BrokenPipeError: [Errno 32] Broken pipe

编译器似乎试图写入manager.dict对象,但为什么?我不改变函数中的任何值。如何解决此错误

感谢您的指导。谢谢


Tags: inpyselfsendhostforlibusr

热门问题