相关疑难解决方法(0)

多处理管理器和自定义类

我不知道为什么,但是每当我尝试传递给共享对象共享自定义类对象的方法时,我都会收到这个奇怪的错误。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
Run Code Online (Sandbox Code Playgroud)

错误:

---------------------------------------------------------------------------
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 …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

7
推荐指数
2
解决办法
5302
查看次数

标签 统计

multiprocessing ×1

python ×1