たとえば、Jupyter/Ipython ノートブックで、時間のかかる計算を大量に実行して、大規模なデータ分析を行っているとします。その後、何らかの理由で Jupyter ローカル サーバーをシャットダウンする必要がありますが、時間のかかる計算を再度実行せずに、後で分析に戻りたいと考えています。
私が やりたいのは、
Jupyter
pickle
セッション全体 (すべての pandas データフレーム、np.arrays、変数など) を保存して、以前とまったく同じ状態でセッションに戻ることができることを確認しながら、サーバーを安全にシャットダウンできるようにすることです。
それは技術的に可能ですか? 私が見落としている組み込み機能があるのでしょうか?
編集:に基づくこれ答えは%store
魔法これは「軽量ピクルス」のはずです。ただし、次のように手動で変数を保存する必要があります。
#inside a ipython/nb session
foo = "A dummy string"
%store foo
セッションを終了し、カーネルを再起動します
%store -r foo
# r は更新
print(foo) # "A dummy string"
これは私が望んでいることにかなり近いですが、手動で行う必要があり、異なるセッションを区別できないため、あまり役に立ちません。
ベストアンサー1
私は思うディル( pip install dill
) はあなたの質問にうまく答えています。
使用dill.dump_session
ノートブックセッションを保存するには:
import dill
dill.dump_session('notebook_env.db')
使用dill.load_session
ノートブックセッションを復元するには:
import dill
dill.load_session('notebook_env.db')
(ソース)