如何解决安装时我未打开的Jupyter笔记本电脑中未显示的nbextensions目录2toc2中的某些设置更改
我最近在conda环境中安装了nbextensions,以增加向笔记本添加目录(toc2)的功能。但是我是在打开jupyter笔记本时执行此操作的,并且在安装扩展程序后,扩展程序设置的更改不会反映在我在安装过程中打开的笔记本电脑上,而在其他未打开的笔记本电脑上却显示出来。
我尝试关闭并重新启动内核,重新启动计算机,然后再次卸载并重新安装nbextensions(遵循github票证上的these说明)。这些事情都不能解决打开的笔记本计算机的问题。笔记本的副本会继承其问题。
需要注意的一件有趣的事是,重新安装nbextensions(这是我的最后一次尝试)后,保留了第一次安装时对设置所做的更改,而不是恢复为默认设置(即,nbextensions中的颜色设置是我已切换的不同颜色)他们卸载之前)。我不确定是否完全卸载了nbextensions还是真的有可能。重新安装后,第二遍复查中设置的进一步更改之后并未反映在任何笔记本上,例如第一次选择侧栏toc设置后将其删除,侧栏仍保留在某些笔记本中。
我不确定发生了什么,但是:
1。)是否有办法使设置更改能够普遍反映在笔记本电脑上,尤其是在具有toc的情况下?尤其是在安装时打开的笔记本上?
2。)有没有办法完全卸载nbextensions,就像它在我的机器上不存在一样,所以我可以再尝试一次?
解决方法
步骤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)”扩展名并将其启用。
现在,打开笔记本时,您应该会看到目录。
否则,请转到下一步。
步骤2-这是与浏览器相关的问题吗?
看看toc2 extension soure,我们可以看到它是基于Javascript代码的基于客户端的。
在加载Jupyter笔记本时,会将main.js模块添加到您的浏览器中的.js文件中,并修改一些菜单命令。
要放弃我们的缓存问题,请使用“最新”浏览器打开Jupyter。 可以是:
- 另一个浏览器(chrome,firefox,Edge ..)
- 或者在隐身/私人模式下使用“正常”浏览器
使用“干净”的浏览器,您应该能够打开笔记本电脑,并从TOC扩展程序中看到导航栏。
现在要做什么:
- 如果“干净”浏览器正常运行,但“正常”浏览器无法正常运行
- 在普通浏览器中清除缓存,然后重试。
- 如果“清理”浏览器无法正常运行,并且Jupyter在本地计算机上运行。
- 我们在这里遇到了一个错误。
- 打开浏览器开发人员工具,在github中打开票证,然后添加开发人员工具的控制台输出。
- 如果“清除”浏览器不起作用并且Jupyter在远程计算机上运行
- 您是否使用代理?还是您的ISP为该页面/页面的一部分使用了透明缓存(很难评估最后一个)。
- 尝试在另一个端口(使用
--port
选项中运行Jupyter)。那应该解决他的问题。考虑使用https而不是http来避免中间网络缓存。
- 尝试在另一个端口(使用
- 您是否使用代理?还是您的ISP为该页面/页面的一部分使用了透明缓存(很难评估最后一个)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。