我正在使用带有瑞萨编译器的scons构建工具。
当构建因错误而终止时,我想知道SCONS的退出状态。
当scons成功执行项目时,它将返回0.如何获取退出状态或数字以检查错误。
python中是否有任何函数可以获取它们。
由于
答案 0 :(得分:1)
有SCons.Script.Main.exit_status
和SCons.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
。