Python 2.7使用multiprocessing报错PicklingError: Can't pickle : attribute lookup __builtin__.instancemethod failed

Python 2.7中使用下面代码的时候

会报告如下错误:

这种错误发生的原因是Python 2.7版本中的multiprocessing模块的进程池部分存在BUG,无法正常处理这种写法的代码,据说在Python 3.4版本之后解决了此问题。

目前测试来看,不用Python 2.7中的进程池,而是自己创建进程,自己管理进程的方式,可以比较简单的解决此类问题。

比如代码修改成如下样子,即可正常运行

至于多进程的管理,则只需要使用

引入multiprocessing模块的Queue,实现一个简单的生产者,消费者模型即可。

参考链接


python multiprocessing遇到Can’t pickle instancemethod问题

发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注