最近偶然间发现了 Jupyter Notebook 的 Nbextensions 库,内置一些非常实用的小插件。此外还可以管理通过其他库安装的插件(如图所示,自动高亮标出),通过勾选即可选择是否使用插件。(注:是否勾选只对勾选后新打开的 notebook 有效,已经打开的 notebook则会沿用原有的设置)
首先介绍其中几个实用的插件,大部分插件的介绍和参数设置都可以在选项卡内滚轮下拉找到,库的具体安装方法见后文。
1 部分插件介绍:
(1)Table of Content(强烈推荐)
Table of Content 通过识别 notebook 自带的 Heading 设置,可以实现类似目录导航中点击跳转的功能,在进行大型项目时方便快速找到某些模块。导航菜单可以任意拖拽位置,或通过顶部的菜单栏选项进行关闭和开启。此外,菜单还可以通过不同颜色来表示不同标题中代码块的状况。(例如默认情况下,选中的标题是黄色,标题内有正在运行的代码块则会标记为红色。对应的颜色在设置中支持RGB自由调色)
Heading 可以在命令行模式(esc)下直接通过快捷键创建,或在 Markdown Cell 中使用如下方法创建,创建后的标题 Cell 需要运行后才能完全生成。
代码语言:javascript复制# 一级标题(注意#后需要加空格)
## 二级标题
### 以此类推
Table of Content和Collapsible Headings 一起使用,可以通过标题折叠/展开Cell。
要实现上面提到的功能,需要在 Collapsible Headings 的设置里勾选下列选项。如果想实现反向操作,则需要在 Table of Content 里勾选相关选项。
(2)Scratchpad(推荐)
相当于加了一个在草稿本里的 Cell,可以在里面运行代码的同时不会修改 notebook 里的代码,但对变量的操作会影响到外面。因此可能比较适合用来查看中间变量的内容和画图,在 notebook 中点击右下角的黑色箭头或者使用快捷键 Ctrl B 即可展开 Scratchpad。
(3)Notify
在代码块运行结束后(其实是识别内核是否空闲),通过发放通知进行提醒,尤其适合需要长时间运行的程序(想要正常使用需要在浏览器里给jupyter notebook 的网页允许通知权限)。这里以 win10 为例,通知在右下角弹出并伴有提示音。此外,在 notebook 内可以直接设置改插件的开关以及触发提醒的时间。(单位为秒,30表示只有在内核运行时间>=30秒的代码块运行结束后才进行通知)
(4)ExecuteTime
在 Cell 代码块下方显示该 Cell 的运行时间以及执行和完成的时刻,具体显示方法也可以在设置中修改。
支持直接通过notebook菜单栏中的Cell直接控制是否显示。
(5)Variable Inspector
类似MATLAB中的相关功能,可以收集已经创建的变量信息。(但是当变量较多较大时使用该插件似乎会减慢代码运行速度……)
再同时使用Codefolding功能,梦回MATLAB了属于是:
以上简要介绍了部分个人认为相对实用的插件,大部分内容也都来自Nbextensions选项卡中各个库的介绍,还有其他有意思的插件这里就不过多介绍,大家可以安装之后自行查阅。
2 安装过程:
(1)安装方法1
代码语言:javascript复制pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
(2)安装方法2(推荐)
亲测从 conda-forge 下载速度不慢,如有需要可换成国内镜像源。
代码语言:javascript复制conda install -c conda-forge jupyter_contrib_nbextensions
conda install -c conda-forge jupyter_nbextensions_configurator
通过以上方法安装完成后重新打开 jupyter notebook,发现在菜单栏会多出 Nbextensions 选项卡,点击后出现文章开头所示画面即安装成功。快来一起使用吧!