1

我正在使用带有瑞萨编译器的 scons 构建工具。

当构建因错误而终止时,我想知道 SCONS 的退出状态。

scons 执行项目成功后返回0。如何获取退出状态或编号来检查错误。

python中是否有任何函数可以获取它们。

谢谢

4

1 回答 1

1

SCons.Script.Main.exit_statusSCons.script.Main.exit_status.code,但是我发现它们在实践中是不可靠的(即它们通常与实际的返回码不同)。

sys.exit通过使用适当的参数调用来设置实际的退出代码。似乎访问它的唯一方法是用sys.exit包装器替换原来的:

import atexit
import sys

exit_code = None
original_exit = None

def my_exit(code=0):
    global exit_code
    exit_code = code
    original_exit(code)

original_exit = sys.exit
sys.exit = my_exit

@atexit.register
def my_exit_handler():
    print "Exit code is", exit_code

if __name__ == '__main__':
    sys.exit(1)

如果您在发生错误时需要更多信息,您可能还需要为sys.excepthook. 还有SCons.Script.GetBuildFailures

于 2013-05-13T08:28:19.313 回答