FTPLIB错误socket.gaierror:提供了[Errno 8]节点名或服务名,或者未知

时间:2018-12-15 04:45:10

标签: python python-3.x ftp ftplib

我正在尝试使用FTPlib从FTP服务器下载文件,但我不断收到以下错误。我尝试了几种在SO上找到的方法,即编辑etc / host文件,并在本地主机IP后添加计算机名称,但这也不起作用。

非常感谢您的帮助。 (运行mac,python 3.7,macOS Mojave 10.14.2)

正在尝试运行的代码:

from ftplib import FTP

ftp = FTP('myftpurl')

错误:

Traceback (most recent call last):

文件“”,第1行,在    init 中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ftplib.py”,第117行     self.connect(主机)   连接中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ftplib.py”,第152行     source_address = self.source_address)   在create_connection中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py”,第707行     对于getaddrinfo中的res(主机,端口,0,SOCK_STREAM):   getaddrinfo中的文件“ /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py”,行748     用于_socket.getaddrinfo中的res(主机,端口,家庭,类型,原型,标志): socket.gaierror:提供了[Errno 8]节点名或服务名,或者未知

1 个答案:

答案 0 :(得分:1)

ftp = FTP('myftpurl')

不清楚myftpurl实际包含在您的特定代码中。
但是,鉴于其名称,我假设您尝试过类似ftp://example.com的操作。仅,因为clearly documented FTP(...)不需要URL,而需要主机名或IP,即FTP('example.com')而不是FTP('ftp://example.com')

给出一个可能与您一样的URL,将会将该URL视为主机名,即对主机名ftp://example.com进行查找。由于不存在这样的主机,因此会出现错误。