fabric.api.run 将 stderr 转换为 stdout 的 SSH
我在使用fabric进行编译时,服务器是Linux系统,客户端是Windows系统,连接方式是SSH。
- 在服务器上,'scons'会把编译错误打印到错误输出(stderr)上。这是可以接受的。
- 但是,当我从客户端执行fabric.api.run('scons')时,编译错误却打印到了标准输出(STDOUT)上。这就不好了,因为这样我的IDE(集成开发环境)无法检测到这些错误。
2 个回答
1
你可以使用 combine_stderr=False
(至少在1.0版本中是这样)。
另外,看看这些链接:
0
默认情况下,fabric.api.run
会把标准输出(正常信息)和错误输出(错误信息)合并到一起。正如@miku所说,在fabric 1.0版本中,你可以通过设置 combine_stderr=False
来关闭这种合并的行为。或者,你也可以把错误输出重定向到一个叫做 /dev/null 的地方,这样就不会显示错误信息了。
run('scons 2>/dev/null')