Python: многопроцессорность в приложении pyqt

У меня есть i7-процессор на моем компьютере и для повышения производительности при вычислении времени для моего приложения pyqt. Я пытаюсь использовать модуль многопроцессорности; когда я делаю в приложении pyqt что-то вроде этого:

import multiprocessing as multiprocessing def foo(ii): print ii pool = multiprocessing.Pool(8) pool.map(foo, range(10)) 

то приложение генерирует 8 pyqt GUI, которые являются клонами первого главного окна (в общей сложности у меня есть 9 pyqt GUI, что, конечно, неправильно, то, что я хочу сделать, это параллельное вычисление и не клонировать основной GUI xD).

Я тоже попробовал библиотеку joblib ( http://pythonhosted.org/joblib/ ), но проблема такая же.

Есть ли способ сделать параллельное вычисление в приложении pyqt с мультипроцессором или модулем joblib?

Спасибо за любую помощь

Если вы работаете в Windows, многопроцессорная система запустит новые процессы, которые импортируют ваш основной модуль. Обязательно защитите код создания GUI, поместив его, if __name__ == '__main__':

Тем не менее, чтобы избежать чрезмерных затрат на импорт PyQt без необходимости в подпроцессах, создайте простой новый основной модуль следующим образом:

 if __name__ == '__main__': import old_main_module old_main_module.main() 

Вы хотите создать несколько процессов для pyqt или хотите добавить дополнительные процессы для «логики» вашего приложения?

До некоторой степени: не многопроцессорный контейнер pyqt – если вы хотите параллелизм, запускаете процессы по логике вашего приложения и возвращаете результат на ваш уровень представления.