Я пытаюсь загрузить файл с ftp-сервера клиента. У меня есть код, который получает файл, и он отлично работает на моем ноутбуке. Когда я запускаю его с консоли на моем производственном сервере, который находится внутри виртуальной машины, он не работает. Он также не работает на виртуальной машине внутри моего рабочего стола p c. Тайм-аут произошел на ftp.retrbinary
Код:
# python > 3.6
from ftplib import FTP
file_csv = 'test.txt'
ftp = FTP(host=hostname, timeout=20)
login = ftp.login(user=user_name, passwd=user_pass)
ftp.set_pasv(False)
ftp.cwd('/csv_files/')
localfile = open(file_csv, 'wb')
ftp.retrbinary('RETR ' + file_csv, localfile.write, 1024)
ftp.quit()
localfile.close()
Я установил таймаут на 20, или код никогда не остановится, пока я не принудительно его заставлю. Сообщение, которое я получаю после истечения времени ожидания:
~/.pyenv/versions/3.6.8/lib/python3.6/socket.py in accept(self)
203 For IP sockets, the address info is a pair (hostaddr, port).
204 """
--> 205 fd, addr = self._accept()
206 # If our type has the SOCK_NONBLOCK flag, we shouldn't pass it onto the
207 # new socket. We do not currently allow passing SOCK_NONBLOCK to
Я не смог решить эту проблему. Пожалуйста, если кто-то может помочь с этим, tahnks.