web-dev-qa-db-ja.com

IPython Notebookで自動保存をオフにする

IPython Notebookで自動保存をオフにする方法を探しています。自動保存をオンにする方法についてGoogle/Stack Overflowの検索からの参照を見たことがありますが、その逆(自動保存をオフにする)が必要です。これが各ノートブックの上部ではなく、永続的に設定できるものである場合、それが優先されます。

24
slaw

これを_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秒ごとに自動保存することを意味します。

10
minrk

これにより、ブラウザーでIPython Notebookに入ると、自動保存が無効になります:%autosave 0

更新:JupyterLabにUI機能が追加されました: https://github.com/jupyterlab/jupyterlab/pull/3734 =

29
Thomas Maloney

MinPythonの元のソリューションは古くなっていますが、これはIPython/Jupyterが頻繁に変化し続けるためです。間接参照以外、これに関する適切なドキュメントは見つかりません ここ 、しかしこれによれば フォーラム投稿 によると、解決策はファイルを編集または作成することです~/.jupyter/custom/custom.js、次の行を追加します。

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

これでうまくいきます。起動時に、Jupyterノートブックの右上隅にある簡単な「自動保存無効」ボックスを探すことで、機能するかどうかを確認できます。フォーラム投稿の完全な解決策は私にはうまくいきませんでした。おそらくそれが完全に有効でなくなったためであり、custom.jsファイルのエラーが静かに発生しているようです。

6
Martin Spacek

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

4
OmerB

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ディレクトリが存在しない場合は作成する必要があります。

1
Mark Chackerian

編集:最近のバージョンのJupyter Notebook(_jupyter notebook --version_ at _6.0.1_)では、ノートブックのロード時の自動保存間隔が機能しないようです。それで、私は _custom.js_ ソリューションに戻ります:

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

上記の Thomas Maloney で指摘されているように、JupyterLabにはそのためのコマンドがあります( Autosave Documents のチェックを外します Settings メニュー)。

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 Notebookを開くか作成して、新しいセルで実行します。

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

結果が0であれば、自動保存は正常にオフになっています。おめでとう!

1
Marc Wouts