IOError: [Errno 2] Нет такого файла - Paramiko put ()
Я загружаю файл через SFTP, используяParamiko с участиемsftp.put(localFile, remoteFile)
, Сначала я делаю необходимый каталог с помощью
makeCommand = 'mkdir -p "' + remotePath + '"'
ssh.exec_command(makeCommand)
иногда это работает, но иногда я получаю следующую ошибку:
sftp.put(localFile, remoteFile)
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 565, in put
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 245, in open
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 635, in _request
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 682, in _read_response
File "build/bdist.macosx-10.8-intel/egg/paramiko/sftp_client.py", line 708, in _convert_status
IOError: [Errno 2] No such file
несмотря на то, что локальный файл определенно существует (иlocalFile
является правильным путем к нему), и, он, удаленный путь сделан. Есть обсуждениеВот а такжеВот по аналогичной проблеме, но ни один из поднятых там вопросов не помог мне. Мой сервер поддерживаетdf -hi
команда. Кто-нибудь советует по этому или возможному решению?
РЕДАКТИРОВАТЬ
После предложений ниже я попытался изменить рабочий каталог с помощьюsftp.chdir(remoteDirectory)
но этот вызов вызвал ту же ошибку, что и выше. Так что, похоже, это не просто проблема с загрузкой. Есть идеи?