我可以自动保存 运行 jupyter python notebook 而无需在浏览器选项卡中打开它吗?

Can I autosave a running jupyter python notebook without having it open in a browser tab?

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

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

是否可以在关闭浏览器选项卡后保持自动保存?

当我关闭选项卡时,内核已经保留 运行,这很棒。

这有点像 "screen",但在 jupyter 中

编辑:即使我在浏览器中将选项卡保持打开状态,我也注意到 24 小时后,右上角的 "kernel status" 变为 "disconnected",即使 运行单元仍然有从服务器 websocket 连接通过管道传输到它的输出

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

关闭页面后内核发送的任何更新都是 lost.For 示例,请尝试以下操作。

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

"Execution request"和"Execution reply"之间的映射已经丢失,无法恢复。

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

更详细地说,修复需要"move"从客户端(您的浏览器)到服务器端的笔记本模型(什么是服务器端,现在是手写的,但这里不是扩展它的地方),这有一些技术问题,比如如何处理小部件,以及在协作时每个人共享什么状态以及每个客户端都有什么状态。就像你折叠一些代码一样,应该存储它吗?还是不是?

如果您对此感兴趣,我建议您参与 JupyterLab,很快就会有一些容易实现的成果可以贡献,应该可以快速修复 80% 的用例。