【问题标题】:How to get the exit status in python如何在python中获取退出状态
【发布时间】:2013-05-13 06:37:23
【问题描述】:

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

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

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

python中有没有函数可以获取它们。

谢谢

【问题讨论】:

  • 如何从你的 python 代码中调用 SCONS?
  • 在 Sconstruct 文件中我注册了一个退出函数。 atexit.register(printExitMessages) 在那个退出函数中我想获得退出状态。

标签: python-2.7 scons


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-29
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2015-02-15
    • 2018-02-28
    • 2017-01-22
    相关资源
    最近更新 更多