如何从Fabric的本地命令捕获stderr?

Yog*_*gaj 19 python stderr fabric python-2.7

Fabric v1.4.3不捕获'python --version'的输出

def python_v():
    m = local('python --version', capture=True)
    print(m)
Run Code Online (Sandbox Code Playgroud)

Lev*_*sky 32

localcapture=True返回命令的stdout; 一个简单的测试显示python --version打印版本信息stderr.因此,您可以尝试在命令中重定向stderrstdout:

m = local('python --version 2>&1', capture=True)
Run Code Online (Sandbox Code Playgroud)

  • 或者使用:``print m.stderr``没有重定向 (8认同)

The*_*Cat 10

我发现以下方式比接受的答案更清洁:

print m.stderr

(谢谢remosu!)