Python Fabric将变量插入到run命令中

时间:2014-03-05 12:59:28

标签: python fabric

我正在尝试将配置文件config.PATH中的变量添加到此Fabric运行命令中:

run('cd $(config.PATH); mkdir releases; mkdir shared; mkdir packages;', fail='ignore')

但我收到错误:

typeError:run()得到意外的关键字参数'fail'

我怎样才能实现我想要的目标?还是有更好的方法?

1 个答案:

答案 0 :(得分:2)

错误告诉你的是run不接受名为fail的参数,事实上,如果你看fabric docs for the run() function,你会发现没有提到这样的参数。

这与尝试在命令中注入变量无关。

如果您的目的是忽略错误,则应使用warn_onlyquiet。来自文档:

  

要忽略非零返回码,请指定warn_only=True。二者皆是   忽略非零返回码并强制命令以静默方式运行,   指定quiet=True

至于config变量的注入,我不相信它会起作用。通常,您可以使用python的常规字符串格式设置,但对于您的用例,您最好使用fabric cd context manager

with cd(config.PATH):
    run('YOUR COMMAND HERE')

这将在块中的命令(或命令)的持续时间内更改远程工作目录。