繁体   English   中英

Python ftplib WinError 10060

[英]Python ftplib WinError 10060

我正在学习使用来自此链接的 ftplib 从 ftp 服务器检索文件: https://docs.python.org/2/library/ftplib.html

当我运行这段代码时

from ftplib import FTP
ftp = FTP('ftp.debian.org')
ftp.login()

我得到

TimeoutError: [WinError 10060] A connection attempt failed because the connected party didn't properly respond after a period time, or established connection failed because connected host has failed respond 超时错误:[WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应

从这个答案https://stackoverflow.com/questions/4946960/when-using-ftplib-in-python# =我知道这是一个服务器端问题,可以通过更改为 ACTV 模式来解决。

所以我将代码更改为

from ftplib import FTP
ftp = FTP()
ftp.set_pasv(True)
ftp.connect('ftp.debian.org')
ftp.login()

仍然是同样的错误。 谁能告诉我我的问题还有哪些其他原因?

编辑 - 在 64 位 Win 10 环境中,在 Thonny(IDE) 上使用 Python 3.6.1

这段代码没有错。 它对我有用。 也许服务器在您尝试时非常慢。 您可以在连接中设置超时:

ftp.connect('ftp.debian.org',timeout=seconds)

我有同样的问题。 由于 ftplib 描述被动模式默认开启。 所以将其设置为 False。 这个对我有用。

ftp.set_pasv(False)

或服务器中的主动被动(它是 Debian 11 对我来说)定义最小和最大端口:

pasv_min_port=10000
pasv_max_port=11000

当然,您需要在防火墙中添加端口:

ufw allow 10000:11000/tcp

将被动模式设置为False对我有用。 谢谢!!

ftp.set_pasv(False)

urllib.error.URLError:

[英]urllib.error.URLError: <urlopen error [WinError 10060] using urllib.request.urlretrieve() on Windows 10 with Python3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM