Python und SecureFTP

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Strange.. Der Username und das Passwort sind exakt gleich, also nicht irgendwelche Leerzeichen oder so zu viel?
Eigentlich kann ich mir das nicht wirklich erklären, aber wenn du herausfindest wie due WinSCP zum laufen bekommst, dann wird paramiko vermutlich auch auf diese Weise laufen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Hallo,

ich habe mir den Ordner paramiko nach site-packages gelegt.
Wenn ich die Datei ausführen möchte, bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

AttributeError: 'module' object has no attribute 'Transport'
:oops:

fehlt da noch irgend was?

Grüße

Stephan
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Also Transport ist ein Methode von paramiko...
Wenn du einen import paramiko machen kannst, dann sollte auch t = paramiko.Transport( ServerAdr ) gehen...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

In site-packages? Nun, installiert oder einfach nur kopiert?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

nur kopiert

Stephan
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Löschs mal, erstell mit python setup.py bdist_wininst ein Setup und installier das mal. Vielleicht hilft das ja.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

ich bekomms net hin.

wenn ich das erste mal die Datei starte, bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

File "C:\Python23\lib\site-packages\paramiko\rsakey.py", line 27, in ?
    from Crypto.Cipher import DES3
ImportError: cannot import name DES3
Starte ich die Datei ein weiteres mal, so bekomme ich diese Fehlermeldung:

Code: Alles auswählen

t = paramiko.Transport("xxxxxxxxxxx")
AttributeError: 'module' object has no attribute 'Transport'
Stephan
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Deine paramiko Installation ist einfach hinüber, so einfach ist es. Einmal findet er DES3 nicht, einmal Transport. Das ist aber bei einem richtig installiertem paramiko auf jedem Fall dabei.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

kannst du mir Deinen paramiko-Ordner (unter site-packages) zumailen?

Stephan
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Wie wärs wenn du folgendes machst:
paramiko as site-packages löschen.

Dann die sauberen Paramiko Quellen runterladen. Diese entpacken und in den paramiko-1.2 ordner gehen. Dort ein python setup.py bdist_wininst ausführen und es durchlaufen lassen. Das dauert ein wenig, geht aber komplett von alleine durch (distutils). Nun gehst du in den neu erstellten dist Ordner und führst dort die neue EXE aus. Das sollte das Problem beheben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Ich habe den Fehler gefunden - es lag an der pycrypto-Installation. Die war nicht sauber. Nach dem ich paramiko neu installiert hatte, war noch der selbe Fehler. Deshalb habe ich pycrypto noch einmal installiert und es läuft. :D

Vielen Dank für Deine Hilfe

Stephan
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das waren aber seltsame Fehler, so richtig unpythonic.. so irrelevant zum eingentlichen Problem. Aber gut dass es geht. :idea:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

naja, die erste Fehlermeldung hat mich auf den richtigen Pfad gebracht ...

Ich stehe aber schon wieder vor einem anderen Problem. Mein Ziel ist ein Programm, mit dem Windows-User über sftp auf ein definiertes Verzeichnis auf einem Unix-Server zugreifen können und nur die Dateien, bei denen sie auch Eigentümer sind, nach Windows kopieren können.

Wenn ich die Dateieigenschaften abfrage, erhalte ich keine Angaben :?

Code: Alles auswählen

liste = sftp.listdir('/Pfad/')
for i in liste:
    print  sftp.stat('/Pfad/%s'%i)
Als Ausgabe erhalte ich:

Code: Alles auswählen

?---------   1 -1       -1             -1 01 Jan 1970  ?
?---------   1 -1       -1             -1 01 Jan 1970  ?
?---------   1 -1       -1             -1 01 Jan 1970  ?
?---------   1 -1       -1             -1 01 Jan 1970  ?
?---------   1 -1       -1             -1 01 Jan 1970  ?
?---------   1 -1       -1             -1 01 Jan 1970  ?
?---------   1 -1       -1             -1 01 Jan 1970  ?
Warum werden die Dateieigenschaften (ich benötige den Dateieigentümer) nicht ausgegeben?

Stephan
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

so, nun habe ich auch die Dateieigenschaften:

Code: Alles auswählen

import paramiko

t = paramiko.Transport('host') 
t.connect(username='name', password='passwort') 
chan = t.open_session()
filelist = []
chan.exec_command('ll')
f = chan.makefile('r+')
for line in f:
    tmp = []
    line = line.replace('\n','').split(' ')
    for i in line:
        if i:
            tmp.append(i)
    filelist.append(tmp)
    
print filelist

chan.close()
t.close()
Falls jemand eine Idee hat, wie ich jetzt Dateien vom Server downloaden kann (irgendetwas wie .ftp.retrbinary - nur halt für paramiko), so bin ich für jeden hinweis dankbar.

Stephan
cray
User
Beiträge: 5
Registriert: Donnerstag 6. Juli 2006, 15:49

Hi stephan mich würde mal interessieren ob du den dateidownload noch hinbekommen hast denn ich versuche mich gerade am gleichen problem :-) ich muss zudem dateien upload/downloaden können :)
Antworten