我正在使用 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/