从 Python C API 保存/检索 Python 模块状态

问题描述

我正在使用 Python greenlets 编写我的 c 程序脚本。

脚本设置如下:

  • 使用 PyModule_New() 创建新的空模块
  • 使用 PyEval_GetBuiltins() 和 PyModule__Addobject() 将内置函数添加到模块中
  • 使用 PyDict_Merge() 将预制的自定义脚本函数模块导入到该新模块中
  • 使用 PyRun_String() 将将函数转换为协程的装饰器注入模块
  • 实际脚本源从文件中加载并使用 PyRun_String() 执行
  • 所有协程/greenlets 都使用 PyObject_CallMethod(g,"switch","") 在所有通过装饰器变成 greenlets函数上启动;

Coroutines/greenlets 现在在无限循环中运行,根据 c 程序的需要产生和继续。

我的问题是;我可以保存模块的完整状态并在稍后加载它,以便所有协程继续在它们停止的地方运行吗?我知道通过 pickle 进行序列化,但我不确定我需要序列化多少和确切的内容才能完全继续运行。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)