DEAP и многопроцессорность: передача инструментария между модулями

Я написал алгоритм с DEAP и теперь хочу обернуть его внутри приложения с PyQt. Я установил и зарегистрировал все свои эволюционные операторы в моем модуле контроллера, а затем попытался запустить алгоритм из моего графического интерфейса, однако я заметил, что когда я передаю набор инструментов, пул многопроцессорной обработки исчезает из набора инструментов, и я не могу использовать его внутри Алгоритм модуля. Я объявил свой пул внутри главной защиты в контроллере следующим образом:

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

И мой набор инструментов в качестве глобальной переменной тоже есть в модуле контроллера. Когда кнопка нажата, я передаю набор инструментов функции внутри модуля моего алгоритма, и вот где мне кажется, что я теряю ссылку на пул?

Я попытался настроить пул, как только вызвана функция запуска моего алгоритма, но затем я получаю ошибку, сообщающую, что класс не совпадает с объектом. Есть ли способ запустить пул из другого модуля и передать его другому? Или есть другой способ достижения желаемого эффекта?

Спасибо.

0 ответов

Другие вопросы по тегам