-1

В 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 ответ1

0

проблема решается простым копированием пакета pxssh.py в мою исходную директорию и изменением этого файла в соответствии с инструкциями отчета об ошибках.

Обычно в python можно скопировать пакеты в необязательную папку и добавить адрес этих папок в переменные среды python; Тогда они переопределят других.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .