Python 有一个错误,可以通过修改 中的文件来修复/usr/lib/
。但我没有编辑该文件的权限,有什么办法可以解决这个问题吗?是否可以在代码文件夹中覆盖该解决方案?
以下 python 代码使用pxssh
包连接到计算机ssh
并在该机器上运行命令。
import pxssh
import getpass
try:
s = pxssh.pxssh()
hostname = raw_input('hostname: ')
username = raw_input('username: ')
password = getpass.getpass('password: ')
s.login (hostname, username, password)
s.sendline ('uptime') # run a command
s.prompt() # match the prompt
print s.before # print everything before the prompt.
s.logout()
except pxssh.ExceptionPxssh, e:
print "pxssh failed on login."
print str(e)
但是当我运行该程序时,出现以下错误。
Traceback (most recent call last):
File "main.py", line 8, in <module>
s.login (hostname, username, password)
File "/usr/lib/python2.7/dist-packages/pxssh.py", line 243, in login
if not self.synch_original_prompt():
File "/usr/lib/python2.7/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/lib/python2.7/dist-packages/pexpect.py", line 824, in read_nonblocking
raise TIMEOUT ('Timeout exceeded in read_nonblocking().')
pexpect.TIMEOUT: Timeout exceeded in read_nonblocking().
我确信我的主机凭据是正确的(我可以使用 直接连接到它们ssh
)。我搜索了这个问题,似乎这是一个Python 中的错误可以通过编辑/usr/lib/python2.7/dist-packages/pxssh.py
我没有权限编辑的文件来解决。在不修改该文件并获得此机器的 root 访问权限的情况下,解决此问题的最佳方法是什么?
答案1
只需将包复制pxssh.py
到我的源目录中并根据错误报告说明修改该文件即可解决问题。
通常在python中,可以将包复制到可选文件夹中,并将这些文件夹的地址添加到python环境变量中;然后它们将覆盖其他文件夹。