2013-08-05 1 views
2

FTP를 통해 원격 서버에 액세스하는 중 다음 오류가 발생합니다. 내가 해결할 수있는 문제는 무엇인지 확실하지 않습니다. 모든 단서가 도움이 될 것입니다.실행 중 ftplib 오류

코드 :

import ftplib 
from ftplib import FTP 
ftp = ftplib.FTP("server_name") 

오류 :

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib64/python2.6/ftplib.py", line 116, in __init__ 
    self.connect(host) 
    File "/usr/lib64/python2.6/ftplib.py", line 131, in connect 
    self.sock = socket.create_connection((self.host, self.port), self.timeout) 
    File "/usr/lib64/python2.6/socket.py", line 553, in create_connection 
    for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
socket.gaierror: [Errno -2] Name or service not known 

답변

0

오류가이 server_name라는 이름의 호스트를 찾을 수 없음을 말하고있다. 그래서 디버깅 할 필요가 있습니다.

터미널/DOS 프롬프트에 ping server_name이있는 경우 작동합니까 아니면 cannot resolve server_name과 같은 오류? 터미널에 ftp server_name을 입력하면 어떻게 될까요?

터미널에서 모든 것이 제대로 작동하고 코드에 어리석은 오자가 없다면, 다음 단계는 파이썬이 왜 잘못되어 가고 있는지 디버깅하는 것입니다. getaddrinfo을 명시 적으로 호출하여 어떤 일이 발생하는지 확인하려고하는 코드를 작성하십시오. 정상적인 IPv4 소켓에서 socket.connect을 시도하여 작동하는지 확인하십시오. 그렇다면 문제는 아마도 IPv6와 관련이 있습니다.

가능성이 높으면 단말기에서도 오류가 발생합니다. 이 경우 서버 이름이 잘못되었거나 네트워크 또는 시스템 설정에 문제가있는 것입니다. 어느 쪽이든, 그것은 프로그래밍 문제가 아니며, StackOverflow가 더 이상 당신을 도울 수 없을 것입니다.

4

(내가 충분히 단지 @LonelySoul에 대한 코멘트를 남기시려면 평판, 그리고 다른 사람이 없습니다.)

"server_name"이 프로토콜을 포함하는 경우 당신은 Name or service not known 예외가 발생할 수 있습니다. ftp://을 삭제하면 문제가 해결되었습니다.

+1

그래서 나가서 특전을 받으십시오. – Mogsdad