nbextensions 中目录 2 (toc2) Table 的一些设置更改未显示在我在安装时打开的 Jupyter 笔记本中

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

我最近在我的 conda 环境中安装了 nbextensions,以添加向我的笔记本添加 Table 目录 (toc2) 的功能。但是我这样做是在打开 jupyter notebook 并且安装扩展后,扩展设置的更改没有反映在我在安装过程中打开的 notebook 上,而在其他没有反映的 notebook 上。

我尝试关闭并重新启动内核,重新启动计算机,然后再次卸载并重新安装 nbextensions(按照 github 票据上的 these 说明)。 None 这些东西纠正了打开的笔记本的问题。笔记本的副本继承了它的问题。

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

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

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

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

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

toc2 模块向笔记本添加了一些元数据。 万一这个元数据丢失,有错误的值,或者写入的默认值使 ToC 不显示试试这个:

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

删除 "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 文件。

更改元数据后:

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

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

如果没有,进行下一步。

第 1 步 - 这是 Jupyter 问题吗?

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

  • 打开jupyter,查看主页上'Clusters'标签旁边有一个'Nbextensions'标签。

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

  • 现在寻找 'Table of contents (2)' 扩展并启用它。

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

如果没有,进行下一步。

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

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

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

要排除缓存问题,请使用 'fresh' 浏览器打开 Jupyter。 这可能是:

  • 其他浏览器(chrome、firefox、Edge..)
  • 或者您的 'normal' 浏览器处于 incognito/InPrivate 模式

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

现在要做什么:

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