You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode中保存ipynb文件的运行状态(含内存状态)

在VSCode中保存Jupyter Notebook完整运行状态的实用方案

针对你需要保留Notebook运行后的内存状态、避免重复执行耗时任务的需求,这里提供几个直接可行的方法:

1. 手动序列化核心变量(最灵活可控)

直接把内存中需要复用的变量(比如大型DataFrame、训练好的模型、计算结果)保存到本地文件,重启后快速加载。

  • 基础方案:用Python内置的pickle模块
    # 保存状态
    import pickle
    # 把需要保留的变量打包成列表或字典
    save_data = {"user_df": user_df, "trained_model": model, "calculated_stats": stats}
    with open("notebook_state.pkl", "wb") as f:
        pickle.dump(save_data, f)
    
    # 重启后加载状态
    with open("notebook_state.pkl", "rb") as f:
        loaded_data = pickle.load(f)
    user_df = loaded_data["user_df"]
    model = loaded_data["trained_model"]
    stats = loaded_data["calculated_stats"]
    
  • 进阶兼容:如果pickle无法处理自定义类、复杂第三方对象(比如某些机器学习模型),改用dill库,它支持更多Python对象的序列化:
    pip install dill
    
    用法和pickle几乎一致,替换成import dill即可。

2. 用IPython魔法命令快速保存变量

IPython内置的%store魔法命令可以跨会话保存变量,无需手动管理文件:

  • 保存变量:
    %store user_df trained_model stats
    
  • 重启Notebook后加载:
    %store -r user_df trained_model stats
    
    这个方法适合快速保存零散变量,但注意它只保存变量值,自定义函数或导入的模块需要重新定义/导入。

3. 用VSCode插件一键保存会话

VSCode生态里有专门的插件可以直接保存整个Jupyter内核的会话状态,包括所有变量、执行上下文:

  • 安装Jupyter Session Saver插件,在Notebook的Jupyter面板里找到「Save Session」选项,将当前内核状态保存为一个会话文件;
  • 下次打开Notebook时,在面板里选择「Load Session」,直接恢复到之前的运行状态,无需重新执行代码。

4. 启用Jupyter内核Checkpoint功能

VSCode支持Jupyter内核的Checkpoint保存,能恢复整个内核的运行上下文:

  • 打开VSCode设置(快捷键Ctrl+,),搜索并开启jupyter.enableKernelManagement;
  • 在Notebook的内核选择菜单里,找到「Save Kernel Checkpoint」,保存当前内核状态;
  • 重启VSCode后,在相同菜单选择「Restore Kernel Checkpoint」,即可恢复之前的内存状态。

注意事项

  • 序列化文件可能占用大量磁盘空间,尤其是包含大型数据集时,定期清理无用的状态文件;
  • pickle/dill生成的文件和Python版本、依赖库版本强绑定,换环境前最好确认版本一致;
  • 如果变量包含敏感数据,不要随意分享状态文件。

内容的提问来源于stack exchange,提问作者Ianau Andrei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:16:11