gpt4 book ai didi

python - 安静地重启 Python 解释器

转载 作者:太空狗 更新时间:2023-10-29 21:48:03 26 4
gpt4 key购买 nike

我在应用程序中嵌入了一个 Python 解释器。该应用程序需要很长时间才能启动,我无法在不重新启动整个应用程序的情况下重新启动解释器。我想做的是本质上保存解释器的状态并轻松返回到该状态。

我首先将所有模块的名称存储在 python 解释器启动的 sys.modules 中,然后在请求时从 sys.modules 中删除所有新模块。这似乎使解释器准备好重新导入相同的模块,即使它之前已经导入了它们。然而,这似乎并不适用于所有情况,例如使用单例类和静态方法等。

如果可以避免的话,我宁愿不在这个解释器中嵌入另一个解释器,因为使用应用程序 API 的便利性将会丧失(以及我想象的包括轻微的速度影响)。

那么,有谁知道我可以存储解释器的状态然后返回到它以便它可以应对所有情况的方法吗?

谢谢,

最佳答案

试试 ActiveState 食谱中的这段代码:http://code.activestate.com/recipes/572213/

它扩展了 pickle,因此它支持对 shell 控制台中定义的任何内容进行酸洗。根据他们的文档,理论上你应该能够 pickle ma​​in 模块:

import savestate, pickle, __main__
pickle.dump(__main__, open('savestate.pickle', 'wb'), 2)

关于python - 安静地重启 Python 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/431432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com