【发布时间】:2015-08-12 16:53:46
【问题描述】:
util.py
def exec_multiprocessing(self, method, args):
with concurrent.futures.ProcessPoolExecutor() as executor:
results = pool.map(method, args)
return results
clone.py
def clone_vm(self, name, first_run, host, ip):
# clone stuff
invoke.py
exec_args = [(name, first_run, host, ip) for host, ip in zip(hosts, ips)]
results = self.util.exec_multiprocessing(self.clone.clone_vm, exec_args)
上面的代码给出了酸洗错误。我发现这是因为我们正在传递实例方法。所以我们应该解开实例方法。但我无法让它工作。
注意:我无法创建顶级方法来避免这种情况。我必须使用实例方法。
【问题讨论】:
-
this question 解决问题了吗?
-
@dano 我应该在 clone.py 文件中使用 _pickle_method() 对吗?
-
是的,紧随其后的是对
copy_reg.pickle的调用。
标签: python python-multiprocessing