1. ホーム
  2. python

[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法

2022-07-17 11:14:37

質問

Jupyter/Ipythonノートブックで大規模なデータ分析をしていて、多くの時間を消費する計算が行われたとします。その後、何らかの理由でjupyterのローカルサーバーIをシャットダウンしなければなりませんが、すべての時間のかかる計算を再び行うことなく、後で分析を行うために戻りたいと思います。


私がしたいこと <ストライク のように が好きです。 pickle またはJupyterセッション全体(すべてのpandasデータフレーム、np.array、変数、...)を保存し、以前とまったく同じ状態で自分のセッションに戻ることができることを知っている私は安全にサーバーをシャットダウンすることができます。

それは技術的に可能ですか? 私が見落としている組み込みの機能があるのでしょうか?


EDITです。 をベースに この という答えがあります。 %store マジック という具合に、quot;lightweight pickle"となるはずです。しかし、このように手動で変数を格納する必要があります。

#inside a ipython/nb session

foo = "A dummy string"

%store foo

seesion を終了し、カーネルを再起動する

%store -r foo # r はリフレッシュの意味

print(foo) # "A dummy string"

は私が望むものにかなり近いですが、手動で行わなければならず、異なるセッションを区別することができないため、あまり有用ではありません。

どのように解決するのですか?

Dillがうまく回答していると思います。

pip install dill

Notebookセッションを保存する。

import dill
dill.dump_session('notebook_env.db')

Notebookのセッションを復元する。

import dill
dill.load_session('notebook_env.db')

ソース