Я полагаю, что наиболее вероятный сценарий состоит в том, что вам нужно закрыть стандартный поток PIPE, прежде чем подпроцесс начнет выполнять и печатать что-либо. Наиболее вероятный сценарий состоит в том, что подпроцесс все еще ожидает ввода.
Возможно, вы захотите попробовать отладку как таковую, закройте стандартный ввод и посмотрите, работает ли он:
p.stdin.close()
p.stdout.read()
Если это сработает, посмотрите, что подпроцесс ожидает как END команды. Например. возможно, он ожидает \r\n
от \n
. Не зная, как работает основной процесс, трудно сказать, что здесь происходит не так.