2014-03-05 35 views
0

我想从我的配置文件config.PATH添加变量到该织物运行命令:Python的织物插入一个变量来运行命令

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

但我得到的错误:

类型错误:运行()得到了一个意想不到的关键字参数'失败'

我该如何实现我想要做的?或者,还有更好的方法?

回答

2

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

这与试图在您的命令中插入变量无关。

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

To ignore non-zero return codes, specify warn_only=True . To both ignore non-zero return codes and force a command to run silently, specify quiet=True .

至于注入的配置变量,我不相信它会工作。在一般情况下,你可以使用Python的字符串格式化的设施,但是对于你的使用情况你最好使用布的cd context manager

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

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

+1

你是对的谢谢。 config.PATH变量实际上会工作吗? – Prometheus

+1

@Spike我不这么认为。我已更新我的回覆。 – tawmas

+0

谢谢,你已经得到了巨大的帮助:) – Prometheus