Python Fabric 在运行命令中插入变量

0 投票
1 回答
973 浏览
提问于 2025-04-17 20:56

我想把我配置文件里的一个变量 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')

这样可以在命令(或多个命令)执行期间,改变远程工作目录。

撰写回答