Win 7, x64, Python 2.7, Anaconda 4.2.0, 5.1.0 IPythonКонсоль IPython не показывает некоторые выходы, но показывает другие?
Я работаю через некоторые multiprocessing
учебники & ударил проблему сразу, работая в консоли IPython. Код ниже ...
import multiprocessing
print 'hello'
def worker():
"""worker function"""
print 'Worker'
return
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
Я ожидаю ...
hello
worker
worker
worker
worker
worker
, но я получаю ..
hello
Почему выход из функции worker
не отображается в консоли IPython?
EDIT: При запуске из командной строки Anaconda он выходит с синтаксической ошибкой на линии print 'Worker'
, но при запуске с консоли Python выполняется, как ожидается, если я буду продолжать нажимать enter.
EDIT 2: теперь работает в командном окне Anaconda (у меня был установлен неправильный Python). Проблема не ограничивается этим кодом. Любой оператор печати в любых параллельных функциях не отображается в консоли IPython.
BTW, SO требует, чтобы текст появлялся на новой строке для двух строк. Используйте форматирование кода, чтобы обойти это. – Carcigenicate
И я подозреваю это, потому что программа заканчивается, прежде чем дать рабочим возможность распечатать. – Carcigenicate
Вы можете протестировать это, не допустить, чтобы программа каким-то образом закончилась, например, запросить пользователя для ввода после запуска заданий. – Carcigenicate