如何解决尝试使用多个进程附加到字典时,获取“ForkAwareLocal”对象没有属性“连接”错误
我正在尝试创建多个进程来并行运行一个函数并将结果附加到共享内存字典中,当我使用管道时,我收到一条错误消息。
相关代码如下:
from multiprocessing import Process,Pipe,Lock,Manager
import time
manager = Manager()
dict = manager.dict()
lock = Lock()
def print_value(value):
with lock:
dict['1'] = '1'
print(dict)
def create_align_process():
for align_p_id in range(1):
align_p = Process(target=print_value,args=(align_p_id,))
align_p.start()
align_p.join()
def func(pro,con):
pro.close()
while True:
try:
recive_info = con.recv()
create_align_process()
except EOFError:
con.close()
break
if __name__ == '__main__':
pro,con = Pipe()
p1 = Process(target=func,args=(pro,con,))
p1.start()
con.close()
pro.send(1)
pro.close()
我运行时收到的错误信息是:
Process Process-2:1:
Traceback (most recent call last):
File "/home/makinaruto/miniconda3/lib/python3.8/multiprocessing/managers.py",line 827,in _callmethod
conn = self._tls.connection
AttributeError: 'ForkAwareLocal' object has no attribute 'connection'
在处理上述异常的过程中,又发生了一个异常:
Traceback (most recent call last):
File "/home/makinaruto/miniconda3/lib/python3.8/multiprocessing/process.py",line 315,in _bootstrap
self.run()
File "/home/makinaruto/miniconda3/lib/python3.8/multiprocessing/process.py",line 108,in run
self._target(*self._args,**self._kwargs)
File "/home/makinaruto/桌面/BleuAlignScript/muti translate_v1.0.py",line 73,in print_value
dict['1'] = '1'
File "<string>",line 2,in __setitem__
File "/home/makinaruto/miniconda3/lib/python3.8/multiprocessing/managers.py",line 831,in _callmethod
self._connect()
File "/home/makinaruto/miniconda3/lib/python3.8/multiprocessing/managers.py",line 818,in _connect
conn = self._Client(self._token.address,authkey=self._authkey)
File "/home/makinaruto/miniconda3/lib/python3.8/multiprocessing/connection.py",line 502,in Client
c = SocketClient(address)
File "/home/makinaruto/miniconda3/lib/python3.8/multiprocessing/connection.py",line 630,in SocketClient
s.connect(address)
FileNotFoundError: [Errno 2] No such file or directory
Process finished with exit code 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。