Я хотел бы иметь возможность управлять удаленным интерпретатором Python через соединение SSH и управлять им из самого Python.
У меня есть базовый шаблон:
ssh.connect(servername, serverport, username, key_filename=key_filename)
transport = ssh.get_transport()
channel = transport.open_session()
channel.exec_command(PATH_TO_EXEC)
while True:
r, w, e = select.select([channel], [], [], 1)
if channel in r:
try:
if channel.recv_ready():
x = channel.recv(64)
elif channel.recv_stderr_ready():
x = channel.recv_stderr(64)
else:
continue
if len(x) == 0:
print '\r\n*** EOF\r\n',
break
sys.stdout.write(x)
sys.stdout.flush()
except socket.timeout:
pass
который позволяет мне общаться с удаленным приложением с pdb
: channel.set("command\n")
.
. Он отлично работает с bash
, с gdb
, но я ничего не могу сделать, чтобы получить выходной поток изpython
(v2)
Как Python обрабатывает свой поток вывода, почему мой код не работает с ним?