Менеджеры многопроцессорной обработки и пользовательские классыPython

Программы на Python
Anonymous
Менеджеры многопроцессорной обработки и пользовательские классы

Сообщение Anonymous »

Я не знаю почему, но я получаю эту странную ошибку всякий раз, когда пытаюсь перейти к методу объекта общего пользовательского класса общего объекта. Версия Python: 3.6.3

Код:

Код: Выделить всё

from multiprocessing.managers import SyncManager

class MyManager(SyncManager): pass
class MyClass: pass

class Wrapper:
def set(self, ent):
self.ent = ent

MyManager.register('MyClass', MyClass)
MyManager.register('Wrapper', Wrapper)

if __name__ == '__main__':
manager = MyManager()
manager.start()

try:
obj = manager.MyClass()
lst = manager.list([1,2,3])

collection = manager.Wrapper()
collection.set(lst) # executed fine
collection.set(obj) # raises error
except Exception as e:
raise
Ошибка:

Код: Выделить всё

---------------------------------------------------------------------------
Traceback (most recent call last):
File "D:\Program Files\Python363\lib\multiprocessing\managers.py", line 228, in serve_client
request = recv()
File "D:\Program Files\Python363\lib\multiprocessing\connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
File "D:\Program Files\Python363\lib\multiprocessing\managers.py", line 881, in RebuildProxy
return func(token, serializer, incref=incref, **kwds)
TypeError: AutoProxy() got an unexpected keyword argument 'manager_owned'
---------------------------------------------------------------------------
В чем здесь проблема?

Подробнее здесь: https://stackoverflow.com/questions/467 ... om-classes

Вернуться в «Python»