ipython笔记本中的只读单元格

时间:2013-08-10 14:42:35

标签: python ipython-notebook

有没有办法使用ipynb文件中的json格式在ipython笔记本中只读标记一个单元格? (例如,一个单元格属性"readonly":false或其他一些。)如果没有,是否有一个jquery hack来查找单元格中的双击事件?

3 个答案:

答案 0 :(得分:6)

是,请使用以下步骤

  1. 选择菜单栏上的视图
  2. 指向“单元格工具栏”并选择“编辑元数据”
  3. “编辑元数据”按钮将显示在单元格的右上角。
  4. 单击该按钮并编辑弹出的json。将可编辑键设置为true为false以获得所需效果。

答案 1 :(得分:3)

IPython的扩展应该是:

Read Only Cell extension

让它工作是别的,但它就在那里。

答案 2 :(得分:0)

另一种不需要任何第三方工具的替代方法是编辑笔记本的元数据,如here所述。

要编辑单元格的元数据,您有两个选择。对我有用的是在编辑器中打开笔记本,然后寻找我想锁定的单元格。但是,这不是一个非常有效的过程。在@Richard Ackon的答案中建议了一个更简单的选项:

  1. 在菜单栏上选择View
  2. 指向Cell Toolbar,然后选择Edit Metadata
  3. 一个Edit Metadata按钮将出现在单元格的右上角。
  4. 单击该按钮并编辑弹出的json。

但是,因为我正在与Jupyter Lab合作,所以这些菜单和选项没有出现在这里,所以我无法使用它。

一旦您到达json文件(或部分)中单元的元数据,只需添加以下几行:

"metadata": {
    "trusted": true,
    "editable": false,
    "deletable": false
}

在Jupyter中保存并重新加载笔记本电脑,tadah !,您的单元格不能被修改或删除。

不幸的是,仍然可以通过在菜单栏中有选择地选择该选项来清除输出(Edit> Clear Ouputs)。当然,只有在您清除输出而不仅仅是运行单元格来更新输出时,才会发生这种情况。