通过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
答案 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将无法为您提供进一步的帮助。