Если я запущу этот простой код в IDLE в Python 2.7.8, появится окно с сообщением: «Программа все еще работает! Вы хотите ее убить?».
from multiprocessing import Pool
def foo(x):
return x**2
if __name__ == '__main__':
pool = Pool(2)
pows = pool.map(foo, range(10))
print pows
Даже если я убью или нет (он спросит дважды), ничего не произойдет. Раньше я использовал Windows и только недавно начал использовать Mac OSX (10.9.4), и я не знаю, упустил ли я что-то здесь.
Если я запускаю тот же код непосредственно в оболочке Python в терминале, он будет работать нормально. То же самое в ноутбуке iPython. Это просто не будет в IDLE, всплывающее окно сообщения.
Любые идеи? Я бы хотел продолжать использовать IDLE...
вот журнал:
INFO:root:10221: Started process
INFO:root:10221: Defined foo
INFO:root:10221: __name__ == '__main__'
INFO:root:10221: pool created
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
. Я не знаю, чем обусловлена разница между ОС или версией, но я рекомендую использовать IDLE с более поздними версиями 2.x или 3.x. - person Terry Jan Reedy   schedule 15.08.2017