保存并恢复 python 解释器状态

Save and restore python interpreter state

有没有办法存储嵌入在 C 程序(不是终端解释器或笔记本)中的 python 解释器的状态,并在它停止后恢复执行?

我发现的关于此主题的其他问题和答案围绕着保存交互式 shell 或 jupyter notebook 的状态或用于调试而演变。但是我的目标是在程序完全重启后冻结执行和恢复。

一个为 Lua 语言实现类似目标的库称为 Pluto,但是我不知道有任何类似的库或内置方法可以在嵌入式 python 口译员。

不,绝对没有办法存储 CPython 解释器的 整个 状态,因为它是 C 代码,除了转储整个内存C 程序到文件并从中恢复。但是,这意味着您无法独立于嵌入式解释器中的 Python 程序 运行 重新启动 C 程序。当然这不是你想要的。

在更有限的情况下,pickle/marshal 一些 对象是可能的,但并非所有对象都是可腌制的——比如打开的文件等。在一般情况下 Python程序必须主动配合冻结和恢复