【问题标题】:"No such file" error when using paramiko's sftp使用 paramiko 的 sftp 时出现“没有这样的文件”错误
【发布时间】:2013-12-07 04:01:49
【问题描述】:

我想使用 python 将本地文件传输到服务器

#!/usr/bin/env python

import os

import paramiko

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname, username="username", password="password")

ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command('ls /tmp')

print "output", ssh_stdout.read() 

#Reading output of the executed command

error = ssh_stderr.read()

#Reading the error stream of the executed command

print "err", error, len(error)

#Transfering files to and from the remote machine

sftp = ssh.open_sftp()

#sftp.get("/home/developers/screenshots/ss.txt", "/home/e100075/python/ss.txt")

sftp.put('/home/e100075/python/ss.txt', '/home/developers/screenshots/ss.txt')

sftp.close()

ssh.close()

运行后出现以下错误

File "file_copy.py", line 21, in <module>

    sftp.put('/home/e100075/python/ss.txt', '/home/developers/screenshots/ss.txt')

  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 565, in put

    fr = self.file(remotepath, 'wb')

  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 245, in open

    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)

  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 635, in _request

    return self._read_response(num)

  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 682, in _read_response

    self._convert_status(msg)

  File "/usr/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 708, in _convert_status

    raise IOError(errno.ENOENT, text)

IOError: [Errno 2] No such file

如果你知道答案。请告诉我

感谢阅读..

【问题讨论】:

  • @shx2 谢谢,是的,我上面有一个文件提到了路径。
  • @shx2,我在远程目录路径上犯了一个错误。现在它的工作。谢谢
  • 太棒了!我将我的评论转换为答案

标签: python linux python-2.7 ssh paramiko


【解决方案1】:

问题很可能是远程目录不存在(/home/developers/screenshots)。创建目录并重试。

【讨论】: