【问题标题】:python runpy.run_module exit codepython runpy.run_module 退出代码
【发布时间】:2017-06-27 17:57:06
【问题描述】:

是否可以从通过runpy.run_module()调用的模块中获取退出代码?

我想更换我的 exit_code = subprocess.call('py -m mymodule') runpy.run_module('mymodule') 并且仍然获得exit_code 值。

其中mymodule 是一个包含python 脚本__main__.py 的目录,它只执行sys.exit(1)

在交互式 shell 中测试 runpy.run_module('mymodule') 会关闭该 shell。我找不到有关该行为的任何文档。在我看来,使用subprocess.callrunpy.run_module 之间的区别在于将其作为程序或函数运行。如果是这种情况,那么就会解释行为,如果我需要退出代码,我不太可能使用 runpy.run_module。 任何人都可以确认这一点,可能带有指向我可以找到的一些文档的链接。

【问题讨论】:

    标签: python subprocess exit runpy


    【解决方案1】:

    今天早上它击中了我,所以我测试了一个解决方案,它奏效了:

    import runpy
    
    try:
        runpy.run_module('mymodule')
    except SystemExit as exeption:
        exitcode = exeption.code
    else:
        exitcode = 0
    

    问题是您必须处理模块中抛出的每个异常。在我的示例中,我只处理 SystemExit 异常,因为它是我感兴趣的唯一异常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-15
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多