gpt4 book ai didi

python - 如何在 Chef 中使用 Python 解释器

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:33 25 4
gpt4 key购买 nike

我正在尝试在 Chef 中使用 Python 解释器。以下是我天真的尝试,但没有奏效。在 python 中完成以下操作的正确方法是什么?

script "install_something" do
interpreter "python"
user "root"
cwd "/tmp"
code <<-EOH
import boto
f = open('test.txt','r')
f.write('adfadf')
f.close()
EOH
not_if {File.exists?("/tmp/test.txt")}
end


[Mon, 02 Apr 2012 15:20:35 +0000] ERROR: Chef::Exceptions::ShellCommandFailed: script[install_something] (rtb_server::default line 101) had an error: Chef::Exceptions::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of "python" "/tmp/chef-script20120402-26069-3d6hob-0" ----
STDOUT:
STDERR: File "/tmp/chef-script20120402-26069-3d6hob-0", line 1
import boto
^
IndentationError: unexpected indent
---- End output of "python" "/tmp/chef-script20120402-26069-3d6hob-0" ----
Ran "python" "/tmp/chef-script20120402-26069-3d6hob-0" returned 1

最佳答案

内容

  code <<-EOH
import boto
f = open('test.txt','r')
f.write('adfadf')
f.close()
EOH

被逐字传递给解释器,也就是说包括前导缩进。因为缩进是 python 语法的一部分,所以您的脚本(在 <<-EOH/EOH 之间)不是有效的 python。

这种情况下的解决方案是删除 <<-EOH 中的缩进/EOH block 。

关于python - 如何在 Chef 中使用 Python 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com