首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python runpy.run_module退出代码

python runpy.run_module退出代码
EN

Stack Overflow用户
提问于 2017-02-09 16:10:05
回答 1查看 1.6K关注 0票数 2

是否有可能从通过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。有人能证实这一点吗,可能是通过链接到我可以找到的一些文档。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 08:53:45

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

代码语言:javascript
复制
import runpy

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42141533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档