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
而不是
运行时错误
。如果您认为多重处理>队列< /代码>不能被腌渍(提供链接的信息)

,我不能复制Ubuntu上的错误,这是有意义的。因此,这可能是您的特定计算机上的安装错误,也可能是与Windows相关的错误。可能是Windows错误。我还发现它可能是一个3.6错误,然后。我的测试是3.5版本(2.7版本也适用)。我没有3.6版本可以测试,只是出于好奇,我在一台虚拟机(ubuntu)上安装了3.6.5,然后出现了错误。这是一个3.6错误或特性。