MailRuChamps / raic-2019

Russian AI Cup — artificial intelligence programming contest. Official website: http://russianaicup.ru
GNU General Public License v3.0
73 stars 45 forks source link

Черный экран при перенаправлении stderr #29

Closed SSS135 closed 4 years ago

SSS135 commented 4 years ago

Пытаюсь перенаправить поток вывода ошибок у локалранера. В --batch-mode работает нормально, а с графикой черный экран. Нужно это для отслеживания запуска приложения (ожидание INFO - Waiting for connection on port), чтобы потом подключиться к нему из своего кода и обучать нейронку. Можно проверить примерно таким кодом на питоне. Если убрать stderr=PIPE, то всё работает.

from subprocess import Popen, PIPE
proc = Popen(['localrunner/aicup2019.exe'], cwd='localrunner', 
    stdout=PIPE, stdin=PIPE, stderr=PIPE)
kuviman commented 4 years ago

Если вы не читаете данные из потока, это блокирует приложение при выводе в stderr

proc.communicate() исправляет ситуацию