【问题标题】:Save and restore python interpreter state保存和恢复 python 解释器状态
【发布时间】:2021-01-05 04:59:46
【问题描述】:

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

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

为 Lua 语言实现类似目标的库称为 Pluto,但我不知道有任何类似的库或内置方法可以在嵌入式 python 解释器中实现相同目标。

【问题讨论】:

  • 这听起来像是一个 XY 问题。另外,“稍后”是什么意思?
  • 嵌入式解释器重启后。就像将状态存储到文件并在解释器再次启动后恢复执行一样。

标签: python c python-embedding


【解决方案1】:

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

在更有限的情况下,可以腌制/封送 一些 对象,但并非所有对象都是可腌制的 - 例如打开的文件等。在一般情况下,Python 程序必须主动 em> 配合冻结和恢复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2014-05-14
    • 2013-08-31
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多