- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
是否可以从通过 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.call
和 runpy.run_module
的区别在于将其作为程序或函数运行。如果是这种情况,那么行为就会得到解释,如果我需要退出代码,我不太可能使用 runpy.run_module
。任何人都可以确认这一点,可能会提供一些我可以找到的文档的链接。
最佳答案
今天早上它击中了我,所以我测试了一个解决方案并且它有效:
import runpy
try:
runpy.run_module('mymodule')
except SystemExit as exeption:
exitcode = exeption.code
else:
exitcode = 0
要注意的是,您必须处理模块中抛出的每个异常。在我的示例中,我只处理 SystemExit
异常,因为这是我唯一感兴趣的异常。
关于python runpy.run_module 退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42141533/
如何将命令行 arge 传递给 runpy。 即如果我能做到 python3 -m foo --arg1=abc 如何在启动进程时将 --arg1=abc 添加为 sys.argv[1]: impor
我有两个文件,一个有我关心的副作用,它发生在 if __name__ == "__main__" 中。 guard : # a.py d = {} if __name__ == "__main__":
我有一个使用多处理的Python模块。我正在使用 runpy 从另一个脚本执行此模块。但是,这会导致 (1) 模块运行两次,并且 (2) 多处理 作业永远不会完成(脚本只是挂起)。 在我的最小工作示例
是否可以从通过 runpy.run_module() 调用的模块中获取退出代码? 我想更换我的 exit_code = subprocess.call('py -m mymodule') 和 runp
当我尝试运行在使用 runpy 加载的文件中定义的方法时出现意外行为模块。这些方法看不到在该方法之外定义的任何变量(包括导入的模块)。这是我的做法: #test.py import runpy env
C:\Users\danie01\fox\test\robotframework>pipenv install Installing dependencies from Pipfile.lock (4
我正在尝试在运行 Linux 的树莓派上安装 Python 模块。我正在使用 Python 2.7.11 并尝试了以下命令: python -m pip 安装计划 python -m easy_ins
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我使用 pip 安装了 $ python get-pip.py 我设置了路径 C:\Program Files\Python\Scripts 然后我重新启动命令提示符以使路径生效。然后我跑 $ p
我已经将 Python 安装到 C:\Python。 我已将以下路径添加到 PATH environment variables : C:\Python C:\Python\Lib\site-pack
这有点复杂,可能需要您花费一些时间。 基本问题是,在 linux(我的测试用例中是 Ubuntu)上,我的程序 (Omnitool) 的 cx-freeze 版本无法创建子进程。但是,它适用于 Win
在尝试使用 bash/activate 在虚拟环境中运行内存分析器 ( https://pypi.python.org/pypi/memory_profiler ) 时,我无法运行任何默认测试代码 p
我是一名优秀的程序员,十分优秀!