当我打开一个保存的 IPython Notebook 时,我需要使用导入、函数定义等评估所有单元格以继续处理会话。单击此操作很方便Cell > Run All
。但是如果我不想重新评估所有计算怎么办?我每次都需要手动挑选细胞进行评估吗?
对于这个问题,Mathematica 有“初始化单元”的概念。您可以将笔记本中的一些单元格标记为初始化单元格,然后在打开笔记本后执行“评估初始化单元格”。
IPython Notebook 有类似的解决方案吗?
当我打开一个保存的 IPython Notebook 时,我需要使用导入、函数定义等评估所有单元格以继续处理会话。单击此操作很方便Cell > Run All
。但是如果我不想重新评估所有计算怎么办?我每次都需要手动挑选细胞进行评估吗?
对于这个问题,Mathematica 有“初始化单元”的概念。您可以将笔记本中的一些单元格标记为初始化单元格,然后在打开笔记本后执行“评估初始化单元格”。
IPython Notebook 有类似的解决方案吗?
首先,当您打开 IPython 笔记本时,这并不意味着内核状态丢失,除非您重新启动服务器或显式停止内核。
否则,没有标记的单元格,但在开发版本上有一个“运行到这里”。
此外,如果您使用的是开发版本,使用 Cell Toolbar /metadata 我会说 ~30 行 javascript 它应该是可行的。
我建议您在主要问题跟踪器上打开一个增强请求。这通常可以在 sprint 和/或博客文章期间作为扩展来解释笔记本的内部。
如果您使用的是最新最好的笔记本(我的是 > 4.1),您请求的功能可通过扩展获得。
扩展,以及可以方便地用于启用/禁用每个单独的扩展的界面,可以安装如下
$ git clone https://github.com/ipython-contrib/IPython-notebook-extensions.git
$ cd IPython-notebook-extensions
$ ./setup.py
安装扩展后,启动笔记本服务器
$ cd ; jupyter-notebook < /dev/null > .jupiter.log 2>&1 &
并进入扩展管理页面
$ xdg-open http://localhost:8888/nbextensions
在最近打开的浏览器窗口中,启用“初始化单元”扩展。
如果您现在打开自己的笔记本,您将在工具栏中看到一个新图标,类似于手持计算器,并在View/Cell Toolbar
新条目中看到Initialisation Cell
.
启用此菜单条目并单击要标记为初始化单元格的单元格的工具栏(可能删除单元格的工具栏),然后单击前面描述的图标...
当你加载一个笔记本时,初始化单元会自动运行,所以如果你愿意,你可以把它们放在一个方便的地方,如果你像我一样说笔记本的结尾......