问题描述
我收到此错误,但无法弄清楚。我什至不使用泡菜。我希望能找到一些指导。我有一个填充队列并处理队列的类。类如下:
from multiprocessing import Process,Manager,Queue,Lock
class Searcher():
def __init__(self,*args,**kwargs):
self.q = Queue(maxsize=10)
self.manager = Manager().dict()
self.lock = Lock()
def run(self,n_workers):
jobs = []
p = Process(target = self._populate_queue)
jobs.append(p)
p.start()
for _ in range(n_workers):
p = Process(target = self._process_queue)
jobs.append(p)
p.start()
for job in jobs:
job.join()
def _populate_queue(self):
#put things in queue
def _process_queue(self):
#remove and process things from queue
if __name__ == '__main__':
s = Searcher()
s.run(n_workers=4)
如果我只是执行脚本,它就可以正常工作。
现在我想实现另一个继承自前一个 Searcher
类的类,以便能够将它与其他东西结合起来,但是当我将它与两个类结合时,我得到了 TypeError: cannot pickle 'module' object
,例如:
from searcher import Searcher
from other_module import OtherClass
class MoreSearching(Searcher,OtherClass):
def __init__(self,**kwargs):
super().__init__(*args,**kwargs)
if __name__ == '__main__':
ms = MoreSearching()
ms.run(n_workers=4)
OtherClass
使用 deap
实现,类似于:
from deap import base,creator
class OtherClass(base.ToolBox):
def __init__(self):
base.ToolBox.__init__(self)
self.creator = creator
为什么我会收到这个错误以及我应该怎么做才能解决这个问题并保持我正在寻找的功能(能够使用 deap
库来优化输出,当 run
函数从 Searcher
结束)?我注意到当 self.creator = creator
中出现 OtherClass
行时会发生错误。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)