2017-10-05 3 views
1

Ich versuche, ein FTP-Verzeichnis mit FTPwalker zu durchlaufen, jedoch kann ich keine Verbindung herstellen.Verbinden mit einer FTP-Ressource mit FTPwalker schlägt fehl mit "Name oder Dienst nicht bekannt"

verwendet Der aktuelle Anruf wird:

walker = ftpwalker(server_name="hostname", url="ftp://username:[email protected]") 

jedoch walker.check_state() gibt:

>> walker.check_state() 
Find leading... 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python3.4/site-packages/FTPwalker/runwalker.py", line 100, in check_state 
    self.path_not_exit(False) 
    File "/usr/lib/python3.4/site-packages/FTPwalker/runwalker.py", line 157, in path_not_exit 
    self.m_walker.Process_dispatcher(False) 
    File "/usr/lib/python3.4/site-packages/FTPwalker/main_walker.py", line 82, in Process_dispatcher 
    leadings = self.find_leading_dirs(self.root) 
    File "/usr/lib/python3.4/site-packages/FTPwalker/main_walker.py", line 37, in find_leading_dirs 
    files, dirs = self.run_object.find_leading(top) 
    File "/usr/lib/python3.4/site-packages/FTPwalker/traverse.py", line 75, in find_leading 
    conn = ftplib.FTP(self.server_url) 
    File "/usr/lib64/python3.4/ftplib.py", line 118, in __init__ 
    self.connect(host) 
    File "/usr/lib64/python3.4/ftplib.py", line 153, in connect 
    source_address=self.source_address) 
    File "/usr/lib64/python3.4/socket.py", line 498, in create_connection 
    for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
    File "/usr/lib64/python3.4/socket.py", line 537, in getaddrinfo 
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags): 
socket.gaierror: [Errno -2] Name or service not known 

Ist der url Parameter im richtigen Format eingegeben hier? Pinging der hostname funktioniert.

Antwort

1

Während die Parameter misleadingly url benannt ist, die official example ziemlich deutlich zeigt, dass der Wert tatsächlich ein einfacher Host-Name sein sollte:

from FTPwalker.runwalker import ftpwalker 

walker = ftpwalker("Uniprot", "ftp.uniprot.org") 
walker.check_state() 

Im Ende geht der Wert ftplib.FTP.connect, die Nimmt "Hostname" an.

+0

Angesichts der oben genannten, wie würden Sie in den Anmeldeinformationen übergeben? Der Fehler ist jetzt "ftplib.error_perm: 530 Login incorrect". – category

+1

Es sieht tatsächlich so aus, als ob der 'FTPwalker' nur den anonymen Zugriff unterstützt. –

+0

Ich habe eine andere Funktion in dem Paket gesehen, 'FTPwalker.walker.ftp_walker', die die Weitergabe einer' Verbindung' zu unterstützen scheint - das wird es versuchen. – category

Verwandte Themen