如何解决为什么在使用类继承时会出现“无法腌制模块对象错误”?
我收到此错误,但无法弄清楚。我什至不使用泡菜。我希望能找到一些指导。我有一个填充队列并处理队列的类。类如下:
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 举报,一经查实,本站将立刻删除。