問題描述
我正在嘗試使用 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的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!