在使用pxssh(ssh模块for python)时读取非阻塞错误

问题描述:

我想在使用pxssh moudule的python脚本的远程计算机上执行ssh。在使用pxssh(ssh模块for python)时读取非阻塞错误

这里是我使用相同的代码行:

s = pxssh.pxssh() 
    s.login (hostip,'root',auto_prompt_reset=False) 

但是,这给了我下面的超时错误。

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.6/dist-packages/pxssh.py", line 243, in login 
    if not self.synch_original_prompt(): 
    File "/usr/local/lib/python2.6/dist-packages/pxssh.py", line 134, in synch_original_prompt 
    self.read_nonblocking(size=10000,timeout=1) # GAS: Clear out the cache before getting the prompt 
    File "/usr/local/lib/python2.6/dist-packages/pexpect.py", line 824, in read_nonblocking 
    raise TIMEOUT ('Timeout exceeded in read_nonblocking().') 
pexpect.TIME 

OUT: Timeout exceeded in read_nonblocking(). 
+2

您是否尝试了http://mail.python.org/pipermail/python-list/2008-February/1178169.html中提供的解决方法(涉及轻微更改pxssh代码?) – a3nm 2011-05-16 04:08:22

我已经改变了python库,而是使用更稳定的paramiko,并没有给出上述错误。

我有同样的问题。这篇文章(http://bytes.com/topic/python/answers/760027-read_nonblocking-error-pxssh)有解决方案。

“我只是增加了一个self.sendline()和synch_original_prompt内 第一read_nonblocking()调用前右一time.sleep(0.5)()”

这解决了这个问题对我来说。