我可以自动保存正在运行的jupyter python笔记本,而无需在浏览器选项卡中打开它吗?

时间:2017-08-21 05:34:04

标签: jupyter-notebook ipython-notebook jupyter autosave

所以我有一个长期运行的python笔记本。

只要它在我的浏览器标签中打开,它就会每2分钟自动保存一次,生活也很好。

即使关闭浏览器标签,是否可以保持自动保存?

当我关闭标签时内核已经继续运行,这很棒。

这有点像"屏幕",但在jupyter

编辑:即使我在浏览器中打开选项卡,我注意到24小时后,内核状态为"在右上方变为"断开",即使正在运行的单元仍然有输出通过服务器websocket连接管道输出

1 个答案:

答案 0 :(得分:3)

不,你不能(现在),他们没有意义这样做。 原因是,一旦关闭选项卡,一些关键信息就会丢失,因为它位于运行页面的Javascript VM的内存中。

关闭页面后内核发送的任何更新都将丢失。例如,请尝试以下操作。

  • 使用sleep(10);print('Hello')
  • 创建一个单元格
  • 执行单元格
  • 快速关闭并重新打开标签。
  • 永远不会打印“Hello”。

“执行请求”和“执行回复”之间的映射已丢失,无法恢复。

Jupyter团队意识到了这一点。修复并不难,但需要大量仔细的重构和API设计。 2017年8月底纽约市进行了长时间的亲自讨论。现在重点是抛光JupyterLab,一旦完成,它将成为焦点领域之一。它将与实时协作齐头并进。

更详细地说,修复程序需要将笔记本电脑型号从客户端(您的浏览器)“移动”到服务器端(现在服务器端是handwaved,但这里不是扩展它的地方),有关于这一点的技术问题,比如如何处理小部件,以及何时协调每个人共享的状态以及每个客户端的状态。就像折叠一些代码一样,是否应该存储?不是吗?

如果您对此感兴趣,我建议您参与JupyterLab,很快就会有很多悬而未决的成果,应该可以快速修复80%的用例。