Python Fabric 在运行命令中插入变量
我想把我配置文件里的一个变量 config.PATH
加到这个 Fabric 运行命令里:
run('cd $(config.PATH); mkdir releases; mkdir shared; mkdir packages;', fail='ignore')
但是我遇到了一个错误:
typeError: run() 收到了一个意外的关键字参数 'fail'
我该怎么做才能实现我想要的呢?或者有没有更好的方法?
1 个回答
2
这个错误告诉你,run
这个函数不接受一个叫fail
的参数。实际上,如果你查看fabric文档中关于run()
函数的说明,你会发现根本没有提到这个参数。
这和你想在命令中插入一个变量没有关系。
如果你的目的是忽略错误,你应该使用warn_only
或者quiet
。根据文档的说明:
要忽略非零的返回代码,可以设置
warn_only=True
。如果你想同时忽略非零返回代码并让命令静默运行,可以设置quiet=True
。
至于配置变量的插入,我认为这可能不太行。一般来说,你可以使用Python的字符串格式化功能,但对于你的情况,最好使用fabric的cd
上下文管理器:
with cd(config.PATH):
run('YOUR COMMAND HERE')
这样可以在命令(或多个命令)执行期间,改变远程工作目录。