CPython与Windows上的衍生tty终端无法很好地交互

时间:2012-09-21 00:06:09

标签: python terminal expect tty pexpect

每次我尝试使用winpexpect来产生终端(例如:openssh,ssh)。如果我winpexpect.winspawn('ssh ...')我遇到了“因为stdin不是终端,所以不会分配伪终端。”如果我使用winpexpect.winspawn('ssh -t -t ...')强制终端,那么即使ssh客户端REALLY连接到服务器,我的读缓冲区也没有任何内容。其他交互式终端也是如此,它们只是挂起,读取缓冲区中没有任何内容。但是对于终端的命令,例如ping winpexpect可以工作。

我发现实际上工作的是使用putty的plink.exe,winpexpect.winspawn('plink ...'。这与putty.exe相同,但它不进行终端仿真,我只是获取原始的telnet / decrypted ssh数据。然而,这不是真正理想的解决方案。

我真的很困惑如何让一个spawner / expect库与windows上的终端一起工作!我甚至尝试过使用expectJ,只使用纯Java,而且也有同样的问题。

1 个答案:

答案 0 :(得分:0)

winpexpect / plink出了什么问题? 您可以尝试在winpexpect-1.5上修复许多问题的分叉winpexpect