Python 将共享对象添加到manager.Namespace
将Python 将共享对象添加到manager.Namespace,python,multiprocessing,python-multiprocessing,Python,Multiprocessing,Python Multiprocessing,将manager.Queue分配给manager.Namespace属性时,会得到TypeError。复制它很简单: >>> from multiprocessing import Manager >>> manager = Manager() >>> np = manager.Namespace() >>> np.shared_queue = manager.Queue() Traceback (most recent c
manager.Queue
分配给manager.Namespace
属性时,会得到TypeError
。复制它很简单:
>>> from multiprocessing import Manager
>>> manager = Manager()
>>> np = manager.Namespace()
>>> np.shared_queue = manager.Queue()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\users\leonardo.schettini\appdata\local\programs\python\python36-32\Lib\multiprocessing\managers.py", line 1065, in __setattr__
return callmethod('__setattr__', (key, value))
File "c:\users\leonardo.schettini\appdata\local\programs\python\python36-32\Lib\multiprocessing\managers.py", line 772, in _callmethod
raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
Traceback (most recent call last):
File "c:\users\leonardo.schettini\appdata\local\programs\python\python36-32\Lib\multiprocessing\managers.py", line 228, in serve_client
request = recv()
File "c:\users\leonardo.schettini\appdata\local\programs\python\python36-32\Lib\multiprocessing\connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
File "c:\users\leonardo.schettini\appdata\local\programs\python\python36-32\Lib\multiprocessing\managers.py", line 881, in RebuildProxy
return func(token, serializer, incref=incref, **kwds)
TypeError: AutoProxy() got an unexpected keyword argument 'manager_owned'
---------------------------------------------------------------------------
来自多处理导入管理器的>
>>>经理=经理()
>>>np=manager.Namespace()
>>>np.shared_queue=manager.queue()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“c:\users\leonardo.schettini\appdata\local\programs\python36-32\Lib\multiprocessing\managers.py”,第1065行,位于__
返回callmethod(“设置属性”(键,值))
文件“c:\users\leonardo.schettini\appdata\local\programs\python36-32\Lib\multiprocessing\managers.py”,第772行,在调用方法中
引发转换为错误(种类、结果)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------------
回溯(最近一次呼叫最后一次):
文件“c:\users\leonardo.schettini\appdata\local\programs\python\python36-32\Lib\multiprocessing\managers.py”,第228行,在SERVER\U client中
请求=recv()
recv中的文件“c:\users\leonardo.schettini\appdata\local\programs\python\python36-32\Lib\multiprocessing\connection.py”,第251行
return _ForkingPickler.load(buf.getbuffer())
文件“c:\users\leonardo.schettini\appdata\local\programs\python36-32\Lib\multiprocessing\managers.py”,第881行,在RebuildProxy中
return func(令牌、序列化程序、incref=incref、**kwds)
TypeError:AutoProxy()获得意外的关键字参数“manager\u owned”
---------------------------------------------------------------------------
,我发现manager.Queue
只是
指向由multiprocessing.Manager()对象管理的共享队列的地址(代理)
如果试图分配一个
多处理.Queue
而不是运行时错误
。如果您认为