python - Fabric put 命令给出 fatal error : 'No such file' exception

标签 python fabric

我正在使用 Fabric 1.01,并且在我的 fabfile 中使用了 put 命令。该行是:

put('file.tar.gz', '~/file.tar.gz')

服务器在 env.hosts 列表中。 file.tar.gz 与 fabfile 位于同一目录中,我从该目录运行代码。

当我运行代码时,它会到达运行此 put 命令的位置。就在失败之前,输出是:

[uname@site.com] put: file.tar.gz -> ~/file.tar.gz

Fatal error: put() encountered an exception while uploading 'file.tar.gz'

Underlying exception message:
    No such file

有人知道这是从哪里来的吗?该文件肯定存在于我的本地计算机上,我也尝试将第二个 put() 参数作为 '/server/path/to/' 并且我尝试使用文件的绝对路径作为第一个 put()争论,都无济于事。

最佳答案

我发现此错误消息具有误导性。打印的消息是:

Fatal error: put() encountered an exception while uploading 'local/path'

Underlying exception:
    No such file

这让您认为问题在于 Python 不知何故没有在 local/path 中看到该文件。我不确定这永远不会是这种情况,但无论是在原始问题的情况下还是在我的情况下,问题都与此无关,而是问题是远程文件夹 找不到。由于此命令不会在它找不到的路径中自动创建任何文件夹,因此当它在远程路径中找不到任何远程文件夹时会失败。

在我的特殊情况下,问题是我提供了一个路径,我打算在远程 Linux 系统上将其解释为绝对路径,但我省略了初始的 /

关于python - Fabric put 命令给出 fatal error : 'No such file' exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6351370/

相关文章:

python - 如何在结构中以并行模式运行一次命令?

python - 如何从scrapy中插入数据到mysql

python - 为什么我会收到此布料放置错误?

python - Fabric - Python 3 - 什么是上下文,它必须包含什么以及为什么我需要传递它?

python - Buildout 是否支持 extends 选项中的值替换?

python fabric检查hadoop文件是否存在

python - 为什么我的远程主机在我使用 fabric reboot() 时返回错误代码 -1?

python - 在 cherrypy 中默认 Root View

python - Fastapi 响应 - 反斜杠

python - Scrapy 不会重新下载最近下载的图像