关闭 IPython Notebook 中的自动保存

问题描述 投票:0回答:7

我正在寻找一种在 iPython 笔记本中关闭自动保存的方法。我已经通过 Google/Stack Overflow 搜索看到了有关如何打开自动保存的参考资料,但我想要相反的内容(关闭自动保存)。如果这是可以永久设置的东西而不是在每个笔记本的顶部,那就更好了。

python jupyter-notebook autosave
7个回答
34
投票

一旦您进入浏览器中的 IPython Notebook,这将禁用自动保存:

%autosave 0

更新:JupyterLab 现在有一个 UI 功能: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 表示每 30 秒自动保存一次。


12
投票

MinRK 的原始解决方案已经过时,部分原因是 IPython/Jupyter 不断变化。除了间接引用here之外,我找不到适当的文档,但根据这个论坛帖子,现在的解决方案似乎是编辑或创建文件

~/.jupyter/custom/custom.js
,并添加行:

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

这对我有用。您可以通过在启动时查找 Jupyter 笔记本右上角的简短“自动保存已禁用”框来确认它是否有效。论坛帖子中的完整解决方案对我不起作用,可能是因为它不再完全有效,并且 custom.js 文件中的错误似乎悄无声息地发生。


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. 打开笔记本时,您应该会看到“自动保存已禁用”短暂出现在菜单栏的右侧:


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 现在有一个命令(取消选中 Settings 菜单中的 Autosave Documents)。

在 Jupyter Notebook 中,我认为

autosavetime
扩展比
custom.js
文件更容易使用。
autosavetime
扩展是Jupyter笔记本扩展的一部分,可以通过

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

安装后,重新启动

jupyter notebook
并转到 Edit 菜单中的 nbextensions_config。选择
autosavetime
扩展名,然后关闭自动保存,如下所示:

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

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

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

如果结果为0,则您已成功关闭自动保存。恭喜!


2
投票

从 Jupyter 4.4 (2019) 开始,一个可行的解决方案是将其添加到您的 custom.js 文件中:

require(['base/js/namespace', 'base/js/events'], function (Jupyter, events) {
  Jupyter.notebook.set_autosave_interval(0);
  console.log("Auto-save has been disabled.");
});

如果没有

require
块,JavaScript 将在
Jupyter
对象可用之前执行,从而导致错误。

需要明确的是,custom.js 应驻留在 ~/.jupyter/custom/custom.js ——如果

custom
目录不存在,则必须创建该目录。


0
投票

对于 Jupyter Notebook 7 (2023) 现在共享底层扩展系统 JupyterLab。要以编程方式禁用自动保存,您可以在 ~/.jupyter/lab/user-settings/@jupyterlab/docmanager-extension/plugin.jupyterlab-settings 中编辑实验室设置

{
    "autosave": false
}

相关说明,如果您需要比默认的 120 秒自动保存更快,例如每 1 秒,您可以按如下方式配置相同的文件:

{
    "autosave": true,
    "autosaveInterval": 1,
}
© www.soinside.com 2019 - 2024. All rights reserved.