假设我正在 Jupyter/Ipython 笔记本中进行更大的数据分析,并完成大量耗时的计算。然后,由于某种原因,我必须关闭jupyter本地服务器I,但我想稍后再返回进行分析,而不必再次进行所有耗时的计算。
我喜欢喜欢做的是pickle
或者存储整个 Jupyter 会话(所有 pandas 数据帧、np.arrays、变量……),这样我就可以安全地关闭服务器,因为我知道我可以以与以前完全相同的状态返回会话。
技术上可行吗?是否有我忽略的内置功能?
EDIT:基于this https://stackoverflow.com/a/634581/4050925答案有一个%store
magic http://ipython.org/ipython-doc/rel-0.12/config/extensions/storemagic.html这应该是“轻量级泡菜”。但是,您必须像这样手动存储变量:
#inside a ipython/nb session
foo = "A dummy string"
%store foo
关闭会话,重新启动内核
%store -r foo
# r 用于刷新
print(foo) # "A dummy string"
这与我想要的相当接近,但是必须手动执行并且无法区分不同的会话使其不太有用。
I think Dill https://github.com/uqfoundation/dill (pip install dill
)很好地回答了你的问题。
Use dill.dump_session https://dill.readthedocs.io/en/latest/#dill.dump_session保存笔记本会话:
import dill
dill.dump_session('notebook_env.db')
Use dill.load_session https://dill.readthedocs.io/en/latest/#dill.load_session恢复笔记本会话:
import dill
dill.load_session('notebook_env.db')
(source https://www.reddit.com/r/IPython/comments/6reiqp/how_can_i_save_and_load_the_state_of_the_kernel/dl6f2yn)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)