IPython Notebook在打开时运行所有单元格

Mar*_*nta 11 python ipython ipython-notebook

我有一个IPython noteboook,我试图以某种方式设置它,以便在打开笔记本时自动运行所有单元格.

此行为与包含窗口小部件的笔记本的已保存输出不同.当运行包含它们的单元格时,小部件似乎只为我呈现.请考虑以下示例:

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

w = IntSlider()
display(w)
Run Code Online (Sandbox Code Playgroud)

在执行单元格之前,不会显示滑块.

这可以通过Notebook Metadata或配置文件来实现吗?

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

EDIT2:添加示例.

ank*_*tis 17

  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>
Run Code Online (Sandbox Code Playgroud)

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

小费

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

  • Jupyer Thebe:在与ipython-kernels后端通信的静态页面中嵌入代码片段.
  • nteractnteract:从笔记本电脑构建基于电子的应用程序.
  • 仪表板:"官方"努力允许预先配置笔记本电脑输出网格("仪表板"),打包并作为独立的Web应用程序提供.

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

争议

之前其他网站上已经提出了 类似的问题,但是在这个googlegroup帖子中,有人提交了一个解决方案,并且群组主持人删除了它(!),显然是为了保护地球上的生命:-)所以,要小心它!


小智 5

我只是找到了一种很容易做到这一点的方法。如果您安装nbextensions软件包(https://github.com/ipython-contrib/jupyter_contrib_nbextensions),则其中一个扩展名为“初始化单元”,它允许您标记某些单元以在加载笔记本时自动运行。