DEAP和多处理:在模块之间传递工具箱

时间:2017-08-19 00:12:05

标签: python multiprocessing deap

我用DEAP编写了一个算法,现在希望用PyQt将它包装在一个应用程序中。我在我的控制器模块中设置并注册了所有的进化运算符,然后尝试从我的GUI运行算法但是我注意到当我通过工具箱时,多处理池类型从工具箱中消失,我不能在我的工具箱中使用它算法模块。我在控制器的主要防护装置中声明了我的游泳池,如下所示:

if __name__ == '__main__':
pool = multiprocessing.Pool()
toolbox.register("map", pool.map)
main()

并将我的工具箱作为控制器模块中的全局变量。单击一个按钮时,我将工具箱传递给算法模块中的函数,这就是我似乎失去了对池的引用的地方?

一旦调用了算法的start函数,我就尝试设置池,但后来我得到一个可选择的错误,说该类与对象不同。有没有办法从另一个模块启动池并将其传递给另一个模块?还是有另一种方法可以达到我想要的效果吗?

谢谢。

0 个答案:

没有答案