#python #python-3.x #sftp
#python #python-3.x #sftp
Вопрос:
Я хотел бы использовать paramiko для передачи файлов SFTP в Python 3.6. Я знаю, что paramiko зависит от PyCrypto и прочитал о проблемах с установкой PyCrypto в Python 3.6. Хотя я видел ряд вопросов по этой теме, я не нашел решения для успешной передачи файлов SFTP в Python 3.6.
Мой первый вопрос: возможно ли использовать Python 3.6 для передачи файлов SFTP? Если да, будет ли paramiko работать? Если вышеуказанное сработает, почему я получаю следующие ошибки при попытке установить PyCrypto?
error: [WinError 2] The system canot find the file specified
**Failed building wheel for pycrypto**
Мой второй вопрос: если paramiko не будет работать с Python 3.6, есть ли какие-либо альтернативы или я должен вернуться к предыдущей версии python для передачи файлов SFTP?
Комментарии:
1. ошибка: [WinError 2] Система не может найти указанный файл, Не удалось создать колесо сборки для pycrypto
2. ваша проблема в том, что, находясь в Windows (WinError), вам приходится проходить через некоторые этапы, такие как установка vc, чтобы скомпилировать некоторые пакеты, подобные here (посмотрите на установку pycrypto в Windows). Вы могли бы попробовать использовать conda / anaconda, которые помогут установить большинство необходимых инструментов, или найти в Google пакет wheel, который уже есть для вашей среды Windows.
3. не удается установить напрямую, потому что прокси-сервер блокирует его
4. Это довольно необычное ограничение. Вы должны упомянуть об этом в своем вопросе! — Вы пробовали настраивать прокси в pip?
5. Да, я пытался использовать настроенный прокси. Но это не сработало.
Ответ №1:
Да, через python возможна передача файла с sftp. У Python хороший пакет
Шаг 1 :
pip install pysftp
Шаг 2:
Пример того, как передать файл:
import pysftp
with pysftp.Connection('hostname', username='me', password='secret') as sftp:
with sftp.cd('public'): # temporarily chdir to public
sftp.put('/my/local/filename') # upload file to public/ on remote
sftp.get('remote_file') # get a remote file