执行时出现ftplib错误

时间:2013-08-05 19:38:35

标签: python python-2.7 ftp ftplib

通过FTP访问远程服务器时出现以下错误。不知道它的问题是什么,所以我可以解决。任何领导都会有所帮助。

代码:

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

2 个答案:

答案 0 :(得分:4)

(我没有足够的声誉只为@LonelySoul及其他任何人发表评论。)

如果Name or service not known包含协议,您将遇到"server_name"例外。只需删除ftp://即可解决问题。

答案 1 :(得分:0)

错误告诉您无法找到名为server_name的主机。所以,这就是你需要调试的东西。

如果您在终端/ DOS提示符中ping server_name,它是否有效,或者给出了cannot resolve server_name之类的错误?如果您在终端中ftp server_name怎么办?

如果终端中的所有内容都有效,并且您的代码中没有愚蠢的拼写错误,那么下一步就是调试Python错误的原因。编写一些试图明确调用getaddrinfo的代码,看看会发生什么。在普通的IPv4套接字上尝试socket.connect以查看它是否有效。 (如果是这样,问题可能与IPv6有关。)等等。

更有可能的是,终端也会失败。在这种情况下,要么您的服务器名称错误,要么您的网络或系统设置有问题;无论哪种方式,这都不是编程问题,StackOverflow将无法为您提供进一步的帮助。