我用 DEAP 编写了一个算法,现在希望用 PyQt 将它封装在一个应用程序中。我在控制器模块中设置并注册了所有进化运算符,然后尝试从我的 GUI 运行算法,但是我注意到当我通过工具箱时,多处理池从工具箱中消失了,我无法在我的内部使用它算法模块。我在控制器的主守卫内声明了我的池,如下所示:
if __name__ == '__main__':
pool = multiprocessing.Pool()
toolbox.register("map", pool.map)
main()
并将我的工具箱也作为控制器模块中的全局变量。单击按钮时,我将工具箱传递给算法模块内的函数,这就是我似乎失去对池的引用的地方?
一旦调用了我的算法的启动函数,我就尝试设置池,但随后我收到一个可挑选的错误,说该类与对象不同。有没有办法从另一个模块启动一个池并将其传递给另一个模块?还是有其他方法可以达到我想要的效果?
谢谢你。