关闭IPython Notebook中的自动保存

33 投票
7 回答
26249 浏览
提问于 2025-04-19 11:11

我想找个办法在iPython笔记本中关闭自动保存功能。我在谷歌和Stack Overflow上看到过关于如何开启自动保存的资料,但我想要的是关闭自动保存。如果能永久设置这个功能,而不是每个笔记本都要设置一次,那就更好了。

7 个回答

4

编辑: 最近版本的Jupyter Notebook(在命令jupyter notebook --version中显示为6.0.1)似乎不再支持在加载笔记本时的自动保存间隔。所以我又回到了custom.js的解决方案。

mkdir -p ~/.jupyter/custom
echo "Jupyter.notebook.set_autosave_interval(0);" >> ~/.jupyter/custom/custom.js

正如Thomas Maloney所提到的,JupyterLab现在有一个命令可以做到这一点(在设置菜单中取消勾选自动保存文档)。

在Jupyter Notebook中,我觉得autosavetime这个扩展比custom.js文件更容易使用。autosavetime扩展是Jupyter笔记本扩展的一部分,可以通过以下命令安装:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install
jupyter nbextension enable autosavetime/main

安装完成后,重启jupyter notebook,然后在编辑菜单中找到nbextensions_config。选择autosavetime扩展,并按照以下步骤关闭自动保存:

  • 勾选在加载笔记本时设置自动保存间隔。如果为假,默认值不变。
  • 在加载笔记本时设置的自动保存间隔(以分钟为单位)中输入0。

要测试这个修改:打开或创建一个Python笔记本,在一个新单元格中执行:

%%javascript
element.text(Jupyter.notebook.autosave_interval);

如果结果是0,恭喜你,成功关闭了自动保存!

8

在Windows上为Jupyter Notebook 5.5.0提供的逐步解决方案(可能也适用于其他环境/版本)

  1. 找到Jupyter的配置文件夹:

    from jupyter_core.paths import jupyter_config_dir
    jupyter_dir = jupyter_config_dir()  # C:\users\<user_name>\.jupyter on my machine
    
  2. 在这个文件夹里创建一个叫 custom 的子文件夹,并在里面创建一个文件 custom.js

    i.e. 'C:\users\<user_name>\.jupyter\custom\custom.js'
    
  3. 在custom.js文件里添加以下内容:

    IPython.notebook.set_autosave_interval(0);
    
  4. 保存文件,然后重启Jupyter Notebook服务器(主应用程序)。

  5. 当你打开一个笔记本时,应该能在菜单栏的右侧看到“自动保存已禁用”短暂出现:

Autosave_Disabled

12

MinRK最初提供的解决方案已经过时了,主要是因为IPython/Jupyter一直在不断变化。我找不到合适的文档来说明这个问题,除了这里有一个间接的参考链接这里。不过根据这个论坛帖子,现在的解决办法似乎是编辑或创建一个文件~/.jupyter/custom/custom.js,然后添加以下内容:

   Jupyter.notebook.set_autosave_interval(0); // disable autosave

这个方法对我有效。你可以通过在启动Jupyter笔记本时查看右上角是否出现“自动保存已禁用”的短暂提示框来确认它是否有效。论坛帖子中的完整解决方案对我没有用,可能是因为它已经不完全有效了,而且在custom.js文件中的错误似乎不会显示出来。

34

在浏览器中使用IPython Notebook时,可以通过输入 %autosave 0 来关闭自动保存功能。

更新:现在在JupyterLab中有一个用户界面功能,可以查看这个链接了解更多信息: https://github.com/jupyterlab/jupyterlab/pull/3734

12

如果你把这个添加到你的 custom.js 文件里,它会关闭所有笔记本的自动保存功能:

$([IPython.events]).on("notebook_loaded.Notebook", function () {
  IPython.notebook.set_autosave_interval(0);
});

custom.js 文件的位置是 $(ipython locate profile)/static/custom/custom.js。你也可以用类似的方法来调整自动保存的时间间隔。这个时间是以毫秒为单位的,所以设置为 30000 就意味着每三十秒自动保存一次。

撰写回答