第 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 文件。
更改元数据后:
- 点击“编辑”按钮
- 保存笔记本
- 关闭浏览器窗口
- 然后再次打开笔记本。
您应该会看到一个浮动的 TOC 窗口。
如果没有,请转到下一步。
第 1 步 - 这是 Jupyter 问题吗?
检查 jupyter_contrib_nbextensions 是否已安装(pip freeze | grep jupyter_contrib_nbextensions)
。
打开 jupyter 并检查主页上的“集群”选项卡旁边是否有一个“Nbextensions”选项卡。
打开“Nbclusters”选项卡并取消选中“禁用没有明确兼容性的 nbextensions 配置(它们可能会破坏您的笔记本环境,但对于 nbextension 开发可能很有用)”框。
现在查找“目录 (2)”扩展并启用它。
现在,当您打开笔记本时,您应该会看到 TOC。
如果没有,请转到下一步。
第 2 步 - 这是与浏览器相关的问题吗?
查看toc2 扩展源,我们可以看到这是基于 Javascript 代码的基于客户端的。
当您加载 Jupyter 笔记本时,模块 main.js 将添加到您的浏览器运行的 .js 中并修改一些菜单命令。
要放弃缓存问题,请使用“新”浏览器打开 Jupyter。这可能是:
- 另一个浏览器(chrome、firefox、Edge..)
- 或者您的“普通”浏览器处于隐身/InPrivate 模式
使用“干净”的浏览器,您应该能够打开笔记本并从 TOC 扩展中看到导航栏。
现在要做什么:
- 如果 Clean 浏览器可以正常工作,但“普通”浏览器不能正常工作
- 如果 Clean 浏览器不起作用并且 Jupyter 正在您的本地计算机上运行。
- 我们在这里遇到了一个错误。
- 打开您的浏览器开发者工具,在 github 中打开一个工单,然后添加开发者工具的控制台输出。
- 如果清除浏览器不起作用并且 Jupyter 正在远程计算机上运行
- 你使用代理吗?或者您的 ISP 是否为此页面/页面的某些部分使用透明缓存(最后一个很难评估)。
--port
尝试在另一个端口(使用选项)中运行 Jupyter 。那应该可以解决他的问题。考虑使用 https 而不是 http 以避免中间网络缓存。