Вызов скрипта Python из подпроцесса не выводится

У меня есть код в двух средах, Windows-машина с виртуальной машиной Linux. Я пытаюсь создать сценарий, который создает код на стороне Windows с помощью сценария, buildWindows.py, запустить на стороне Linux.

У меня есть сценарий SSH на стороне Windows, а затем запустить скрипт Python Builder windowsBuilder.py,

У меня проблема в том, что скрипту Python Builder на стороне Windows требуется некоторое время для запуска, и ничего не распечатывается до завершения программы. Есть ли способ распечатать выходные данные во время работы скрипта, а не когда он закончится?

Я предполагаю, что у меня возникла эта проблема, потому что когда вы вызываете скрипт Python, он открывает новую среду Python и возвращает информацию только после завершения среды Python.

вызов подпроцесса в buildWindows.py:

COMMAND = "cd C:/codeLocation/; python windowsBuilder.py"
ssh = subprocess.Popen(["ssh", "%s" % IP_ADDRESS, COMMAND],
                   shell=False,
                   stdout=subprocess.PIPE)
for line in iter(ssh.stdout.readline, ''):
    sys.stdout.write(line)

1 ответ

Отключить буферизацию: bufsize=0 параметр передан для вызова

 ssh = subprocess.call(["ssh", "%s" % IP_ADDRESS, COMMAND],
                   shell=False,
                   stdout=subprocess.PIPE,
                   bufsize=0)
Другие вопросы по тегам