我可以跑:
import chef
chef.autoconfigure()
for node in chef.Node.list():
if "auto" in node.lower():
print "deleting node " + node
nodeObj = chef.Node(node)
nodeObj.delete()
在控制台中,但当我尝试将其作为脚本运行时:python2.7 test.py
我得到以下错误:
我用控制台验证
>>> chef.__path__
['/usr/local/lib/python2.7/site-packages/chef']
所以,机器是一样的,python的版本是一样的,模块也是一样的。为什么会这样?在
虽然我不知道为什么ChefAPI对象不能在脚本中持久化,但我发现我必须将我的搜索对象传递给我的ChefAPI对象as seen as a keyword argument in the signature here。和你的情况一样,在控制台中测试我的代码时,这是不必要的。在
在我的例子中,我生成ChefAPI对象
from_config_file()
,并将其传递给我的搜索对象,如下所示:在控制台中,这不需要传递
api=chefapiobject
可以使用导入本地配置厨师自动配置. 例如:
http://pychef.readthedocs.org/en/latest/api.html#chef.autoconfigure
我发现当作为脚本运行时,pyChef不能正确识别刀.rb自动配置步骤的文件。在
这就是它的工作原理:
请注意,我不知道它为什么不能使用刀.rb在一种情况下文件正确,而不是另一种情况下(我验证了相同的cwd在两种情况下都被使用。。。-甚至尝试过指向自动配置('/folder/of/刀.rb'没有运气。在
相关问题 更多 >
编程相关推荐