Нет вывода на печать из дочерней многопроцессорности. Процесс, если программа не сработает

У меня возникают проблемы с модулем многопроцессорности Python. Я использую класс Process, чтобы создать новый процесс, чтобы использовать второе ядро. Этот второй процесс загружает кучу данных в ОЗУ, а затем ждет терпеливо, а не потребляет.

Я хотел посмотреть, что этот процесс напечатан с помощью команды print, однако я не вижу ничего, что он печатает. Я вижу только то, что печатает родительский процесс. Теперь это имеет смысл для меня, поскольку они живут в двух разных процессах. Второй процесс не порождает собственное окно вывода оболочки/стандартного вывода и не выводит его вывод родителям. Однако, когда этот процесс падает, он печатает все, что мой script сказал ему для печати, плюс трассировка стека и ошибка.

Мне интересно, есть ли простой способ отправить выходной вывод дочернего процесса в первый процесс или вызвать его выпуск shell/standard, чтобы я мог его отлаживать. Я знаю, что я мог бы создать multiprocessing.Queue, предназначенный для передачи отпечатков родительскому объекту, чтобы он мог печатать их на стандартный вывод, но мне не хочется делать это, если существует более простое решение.

Ответы

Ответ 1

Вы пробовали стирать stdout?

import sys
print "foo"
sys.stdout.flush()