Pxssh invalid syntax

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
schnibli
User
Beiträge: 27
Registriert: Mittwoch 19. November 2014, 18:52

Hallo zusammen,
Ich habe auf meinem Raspberry pi Python 3.2.3 und pxssh installieret.
Nun habe ich folgendes Problem:

Code: Alles auswählen

import pxssh
#ssh
s = pxssh.pxssh()
if not s.login ('192.168.61.93', 'root', '1234'):
    print "SSH session failed on login."
    print str(s)
else:
    print "SSH session login successful"
    s.sendline ('ls -l')
    s.prompt()         # match the prompt
    print s.before     # print everything before the prompt.
    s.logout()

anschließend kommt folgende Meldung:

Code: Alles auswählen

print "ssh session failed on login."
syntaxError: invalid syntax
Die IP Addresse und das Login stimmt 100% da ich es mit winscp ausprobiert habe :)
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@schnibli: ein SyntaxError sagt, dass etwas mit Deiner Syntax nicht stimmt. Der Fehler kommt, bevor überhaupt eine Zeile Deines Programms ausgeführt wird. "print" ist eine Funktion und um Funktionen aufzurufen, müssen die Argumente in Klammern gesetzt werden, die bei Dir fehlen. Auch "login" und "sendline" sind Funktionen, das Leerzeichen zwischen Funktionsname und Klammer-Auf gehört da nicht hin.
schnibli
User
Beiträge: 27
Registriert: Mittwoch 19. November 2014, 18:52

Hallo, Vielen Dank.

Nun habe ich es so abgeändert:

Code: Alles auswählen

#ssh
s = pxssh.pxssh()
if not s.login ('localhost', 'myusername', 'mypassword'):
    print ("SSH session failed on login.")
    print (str(s))
else:
    print ("SSH session login successful")
    s.sendline ('uptime')
    s.prompt()         # match the prompt
    print (s.before)     # print everything before the prompt.
    s.logout()
    
Nun erscheint ein andererer Fehler:

Code: Alles auswählen

s = pxssh.pxssh()
NameError: name 'pxssh' is not defined
Ups ich hatte import pxssh nicht Improtiert aber die Fehler gehen weiter -.-

Code: Alles auswählen

Rais ExeptionPxssh('could not synchronize with original prompt')
pexpect.pxssh.ExeptionPxssh: could not synchronize with original promt

Für alle die das Selbe Problem haben:
Mein Code:

Code: Alles auswählen

import pxssh
#ssh
s = pxssh.pxssh()
if not s.login ('192.168.61.93', 'root', 'schneider'):
    print ("SSH session failed on login.")
    print (str(s))
else:
    print ("SSH session login successful")
    s.sendline ('mpc play 3')
    s.prompt()         # match the prompt
    print (s.before)     # print everything before the prompt.
    s.logout()
Achtung!!! Pytohn 3.2.3
Nun musste ich von pxssh (pexpect) folgende Datei ändern:

Code: Alles auswählen

/usr/local/lib/python3.2/dist-packages/pexpect/pxssh.py
Und zwar diese Zeile:

Code: Alles auswählen

# All of these timing pace values are magic.
        # I came up with these based on what seemed reliable for
        # connecting to a heavily loaded machine I have.
        self.sendline()
        time.sleep(0.1)  # Hier neu: time.sleep(0.5) oder noch höher
Dies liegt wohl daran das die ssh Verbindung relative langsam ist.
Antworten