【问题标题】:How to freeze a cell alone with its outputs on a jupyter notebook如何在 jupyter 笔记本上单独冻结单元格及其输出
【发布时间】:2018-01-08 07:51:44
【问题描述】:

使用 Jupyter 笔记本时,执行单元的输出(包括错误消息)可能很有用,因此我想冻结单元及其输出,或者换句话说,inactivate 单元格以保持输出。

这可行吗?

【问题讨论】:

  • 冻结单元格及其输出的方式: (1) 下拉菜单 > 文件 > 下载为 > Markdown ,保存到 .md 文件。 (2) 将感兴趣的单元格及其输出从 .md 文件单独复制到工作笔记本中的新单元格。不是那么漂亮,但它仍然有效。感谢@pylang,他实际上为我带来了解决方法。对于一个完美的解决方案,我希望有更好的方法来冻结或单独将选定的单元格转换为 HTML 单元格。

标签: jupyter-notebook


【解决方案1】:

这会冻结单元格,但不会冻结输出:

  1. 在编辑器中打开笔记本。

  2. 查找您要锁定的单元格。

  3. 将以下行添加到单元格的元数据中:

    "metadata": {
        "trusted": true,
        "editable": false,
        "deletable": false
    }
    
  4. 在 Jupyter 中保存并重新加载笔记本,然后... Tadah!,您的单元格无法修改或删除。

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

Source

【讨论】:

    【解决方案2】:

    从历史上看,这样的功能有not been available in native Jupyter

    但是,您可以尝试使用Jupyter extension called "Runtools",它会显示一个按钮,该按钮应该运行所有单元格并忽略异常。

    【讨论】:

    • 非常感谢。 “运行工具”已关闭。现在我在想,我们可能可以强制修改 .ipynb JSON 以将特定单元格及其输出转换为 HTML,或者通过扩展来实现。希望该扩展已经存在?
    • 也许你对nbconvert感兴趣。 handling exceptions上有一段。
    • 非常感谢。 “nbconvert” 看起来确实是一个解决方案。我需要阅读它的文件并尝试。 . . . .
    【解决方案3】:

    nbextensions 的默认套件中现在有一个名为Freeze 的扩展。
    pip install jupyter_contrib_nbextensions 并从任何笔记本打开Edit/nbextensions config 以启用冻结。

    【讨论】:

    • 上述pip安装后,需要在DOSBox(Windows 10)中运行“jupyter contrib nbextension install --user”,然后重启jupyter notebook,然后出现一个新标签“Nbextensions”>找到并检查“冻结”> 然后在任何笔记本的工具栏上出现 3 个新工具图标:正常、只读和冻结。
    猜你喜欢
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 2020-02-06
    • 2022-11-20
    相关资源
    最近更新 更多