У меня есть модуль Python, который использует multiprocessing
. Я выполняю этот модуль из другого скрипта с runpy
. Однако это приводит к тому, что (1) модуль, выполняющий дважды , и (2) задания multiprocessing
никогда не завершаются (скрипт просто зависает).
В моем минимальном рабочем примере яиметь скрипт runpy_test.py :
import runpy
runpy.run_module('module_test')
и каталог module_test , содержащий пустой __ init __. py и __ main__.py :
from multiprocessing import Pool
print 'start'
def f(x):
return x*x
pool = Pool()
result = pool.map(f, [1,2,3])
print 'done'
Когда я запускаю runpy_test.py , я получаю:
start
start
и скрипт зависает.
Если я удаляю вызов pool.map
(или если я запускаю __ main __. Py напрямую, включая вызов pool.map
), я получаю:
start
done
Я запускаю этов Scientific Linux 7.6 в Python 2.7.5.