【问题标题】:Some setting changes in Table of Contents 2 (toc2) in nbextensions not showing up in Jupyter notebook I had open at the time of installation我在安装时打开的 Jupyter 笔记本中未显示 nbextensions 中的目录 2 (toc2) 中的一些设置更改
【发布时间】:2021-01-19 17:26:52
【问题描述】:

我最近在我的 conda 环境中安装了 nbextensions,以添加向我的笔记本添加目录 (toc2) 的功能。但是我在打开 jupyter notebook 的情况下执行了此操作,并且在安装扩展程序后,扩展程序设置的更改并未反映在我在安装过程中打开的笔记本电脑上,而在其他未打开的笔记本电脑上却有。

我尝试关闭并重新启动内核,重新启动计算机,然后再次卸载并重新安装 nbextensions(按照 github 票证上的 these 说明)。这些事情都没有解决打开的笔记本的问题。笔记本的副本继承了它的问题。

需要注意的一件有趣的事情是,在我最后一次尝试重新安装 nbextensions 后,第一次安装时对设置的更改被保留,而不是恢复为默认值(即 nbextensions 中的颜色设置是我切换的不同颜色他们在卸载之前)。我不确定我是否完全卸载了 nbextensions 或者是否真的有可能。而且重新安装后,第二次复飞中设置的进一步更改并没有反映在之后的任何笔记本电脑上,比如第一次选择后删除侧边栏目录设置,侧边栏仍然保留在某些笔记本电脑中。

我不确定发生了什么,但是:

1.) 有没有办法让设置更改以普遍反映在笔记本上,尤其是有目录?尤其是在安装时打开的笔记本上?

2.) 有没有办法完全卸载 nbextensions,就像它在我的机器上从未存在过一样,所以我可以再试一次?

【问题讨论】:

    标签: jupyter-notebook tableofcontents jupyter-contrib-nbextensions


    【解决方案1】:

    第 0 步 - 这是笔记本元数据的问题吗?

    toc2 模块将一些元数据添加到笔记本中。 万一此元数据丢失、值错误或写入的默认值导致 ToC 不显示,请尝试以下操作:

    打开笔记本并选择“编辑”->“编辑笔记本元数据”。

    删除"toc":部分(如果存在)并将其添加到元数据的末尾:

      "toc": {
        "nav_menu": {},
        "number_sections": true,
        "sideBar": true,
        "skip_h1_title": false,
        "base_numbering": 1,
        "title_cell": "Table of Contents",
        "title_sidebar": "Contents",
        "toc_cell": true,
        "toc_position": {
          "height": "382px",
          "width": "256px",
          "left": "10px",
          "top": "10px"
        },
        "toc_section_display": true,
        "toc_window_display": true
      }
    

    如果存在,请注意不要在结束 } 之后删除任何逗号(,)!这必须是有效的 JSON 文件。

    更改元数据后:

    • 点击“编辑”按钮
    • 保存笔记本
    • 关闭浏览器窗口
    • 然后再次打开笔记本。

    您应该会看到一个浮动目录窗口。

    如果没有,请转到下一步。

    第 1 步 - 这是 Jupyter 问题吗?

    • 检查 jupyter_contrib_nbextensions 是否安装(pip freeze | grep jupyter_contrib_nbextensions)

    • 打开 jupyter 并检查主页上的“集群”选项卡旁边是否有一个“Nbextensions”选项卡。

    • 打开“Nbclusters”选项卡并取消选中“禁用没有明确兼容性的 nbextensions 配置(它们可能会破坏您的笔记本环境,但对于 nbextension 开发可能很有用)”框。

    • 现在查找“目录 (2)”扩展并启用它。

    现在您应该在打开笔记本时看到目录。

    如果没有,请转到下一步。

    第 2 步 - 这是与浏览器相关的问题吗?

    查看toc2 extension soure我们可以看到这是基于客户端的基于Javascript的代码。

    当您加载 Jupyter 笔记本时,模块 main.js 会添加到您的浏览器运行的 .js 中并修改一些菜单命令。

    要放弃缓存问题,请使用“新”浏览器打开 Jupyter。 这可能是:

    • 其他浏览器(chrome、firefox、Edge..)
    • 或者您的“普通”浏览器处于隐身/InPrivate 模式

    使用“干净”的浏览器,您应该能够打开笔记本并从 TOC 扩展中看到导航栏。

    现在该做什么:

    • 如果 Clean 浏览器工作,但“普通”浏览器不工作
      • 在普通浏览器中清除缓存,然后重试。
    • 如果 Clean 浏览器不工作并且 Jupyter 正在您的本地计算机上运行。
      • 我们在这里遇到了一个错误。
      • 打开您的浏览器开发者工具,在 github 中打开一个工单,然后添加开发者工具的控制台输出。
    • 如果清除浏览器不起作用并且 Jupyter 正在远程计算机上运行
      • 您使用代理吗?或者您的 ISP 是否为此页面/页面的某些部分使用透明缓存(最后一个很难评估)。
        • 尝试在另一个端口中运行 Jupyter(使用 --port 选项)。那应该可以解决他的问题。考虑使用 https 而不是 http 以避免中间网络缓存。

    【讨论】:

    • 谢谢,更改元数据帮助我解决了 TOC 单元问题。有没有办法强制 TOC2 的可折叠标题设置反映在笔记本上?我不知道如何通过更改元数据来完成这一切,我想知道为什么没有反映该设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2020-07-22
    • 1970-01-01
    • 2018-07-19
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多