Jupyter 笔记本在打开时运行所有单元格

新手上路,请多包涵

我有一个 Jupyter noteboook,我正在尝试以某种方式进行设置,以便在打开笔记本时自动运行所有单元格。

此行为不同于包含小部件的笔记本的保存输出。当包含小部件的单元格运行时,小部件似乎只为我呈现。考虑以下示例:

 from IPython.display import display
from IPython.html.widgets import IntSlider

w = IntSlider()
display(w)

直到执行单元格才会显示滑块。

这是可以通过笔记本元数据或配置文件来完成的事情吗?

编辑: https ://try.jupyter.org/ 似乎在做这样的事情:请注意,当您打开页面并在打开时显示输出时,笔记本没有运行。

EDIT2: 添加示例。

原文由 Markus Schanta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 930
2 个回答
  1. 将下面的代码片段粘贴到普通(代码)单元格中,
  2. 执行它(点击 [Ctrl + Enter] ),然后
  3. 保存 笔记本。

下次您(重新)加载它时,所有单元格都将运行,并且检查点将与其刷新的输出一起保存。

 %%html
<script>
    // AUTORUN ALL CELLS ON NOTEBOOK-LOAD!
    require(
        ['base/js/namespace', 'jquery'],
        function(jupyter, $) {
            $(jupyter.events).on("kernel_ready.Kernel", function () {
                console.log("Auto-running all cells-below...");
                jupyter.actions.call('jupyter-notebook:run-all-cells-below');
                jupyter.actions.call('jupyter-notebook:save-notebook');
            });
        }
    );
</script>

请注意,如果清除上述单元格的输出,则必须重复步骤 2 和 3。

提示

您可能会考虑这些更适合您可能想要实现的解决方案:

  • Jupyer Thebe :在与 ipython 内核后端通信的静态页面中嵌入代码片段。
  • 互动nteract :从笔记本构建基于 Electron 的应用程序。
  • 仪表板:允许预先配置笔记本单元输出网格(“仪表板”)的“官方”努力,将它们打包并作为独立的网络应用程序提供服务。

您可以在 本文 中找到有关情况的摘要。

争议

之前其他网站 上也 提出 过类似的问题,但是在 这个 googlegroup 线程 中,有人提交了一个解决方案,然后 组版主删除了它(!) ,显然是为了保护地球上的生命 :-) 所以,小心点!

原文由 ankostis 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题