FTPLIB 错误 socket.gaierror: [Errno 8] nodename nor servname provided, or not known [英] FTPLIB error socket.gaierror: [Errno 8] nodename nor servname provided, or not known

查看:25
本文介绍了FTPLIB 错误 socket.gaierror: [Errno 8] nodename nor servname provided, or not known的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to download a file from an FTP server using FTPlib but i keep getting the error below. I tried several methods found on SO namely editing the etc/host file and adding the computer name after the local host IP but that doesnt work either.

非常感谢任何帮助.(运行mac,python 3.7,macOS Mojave 10.14.2)

Any help is much appreciated. (running a 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)文件/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py",第 707 行,在 create_connection对于 getaddrinfo(host, port, 0, SOCK_STREAM) 中的 res:文件/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py",第 748 行,在 getaddrinfo对于 _socket.getaddrinfo 中的 res(主机、端口、家庭、类型、原型、标志):socket.gaierror: [Errno 8] nodename or servname provided, or not known

File "", line 1, in File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ftplib.py", line 117, in init self.connect(host) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ftplib.py", line 152, in connect source_address=self.source_address) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 707, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 748, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno 8] nodename nor servname provided, or not known

推荐答案

ftp = FTP('myftpurl')

不清楚 myftpurl 在您的特定代码中实际包含什么.
但鉴于它的名称,我假设您已经尝试过类似 ftp://example.com 的方法.仅作为 明确记录 FTP(...) 不需要 URL,而是主机名或 IP,即 FTP('example.com') 而不是 FTP('ftp://example.com').

It is not clear what myftpurl actually contains in your specific code.
But given its name I assume that you've tried something like ftp://example.com. Only, as clearly documented FTP(...) does not expect a URL but instead a hostname or IP, i.e. FTP('example.com') and not FTP('ftp://example.com').

给定一个 URL,就像你可能做的那样,将导致将该 URL 视为主机名,即查找主机名 ftp://example.com.由于这样的主机不存在,您会收到错误消息.

Given a URL like you probably do will result in treating that URL as hostname, i.e. doing a lookup for the hostname ftp://example.com. Since such a host does not exist you get an error.

这篇关于FTPLIB 错误 socket.gaierror: [Errno 8] nodename nor servname provided, or not known的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆