Я пытаюсь создать среду выполнения/оболочку, которая будет удаленно выполняться на сервере, который передает поток stdout, err, поверх сокета, который будет отображаться в браузере. В настоящее время я попытался использовать subprocess.run
с помощью PIPE
. Проблема в том, что я получаю stdout после завершения процесса. То, что я хочу достичь, состоит в том, чтобы получить линейную, псевдотерминальную реализацию.
Моя текущая реализация
test.py
def greeter():
for _ in range(10):
print('hello world')
greeter()
и в оболочке
>>> import subprocess
>>> result = subprocess.run(['python3', 'test.py'], stdout=subprocess.PIPE)
>>> print(result.stdout.decode('utf-8'))
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
Если я попытаюсь выполнить эту простую реализацию с помощью pty
, как это сделать?