我正在尝试使用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]节点名或服务名,或者未知
答案 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
进行查找。由于不存在这样的主机,因此会出现错误。