JupyterLab 插件
JupyterLab 插件本质上就是运行在浏览器中的 JavaScript 文件,当然有些需要后端支持的也需要 Python 代码。他们大多数能够使用 pip/conda 安装。
Tips
纯粹属于前端的可能会被放置到 npm 上,不过大部分是混合前端和后端支持,通常在 pip 上安装
Tips
注意后端插件需要通过 jupyter server extension list
查看
notebook 和 lab 插件
最初只有 Notebook 时,Jupyter 维护了一个jupyter_contrib_nbextensions仓库,其中维护了很多 Notebook 插件。并且第三方社区也维护了很多插件。
在切换到 JupyterLab 后这些插件都无法使用了,而是引入了全新的插件管理器来管理插件。而最新的 Jupyterlab 4 和 Notebook 7 又进行了更大升级,一大堆社区插件又不能使用了。所以目前推荐仍然使用 Jupyterlab 3,之后根据自己使用的插件来看是否进行升级。
插件管理器
JupyterLab 本身带有一个扩展管理器,我们可以从其中搜索插件来安装,他和直接使用 pip/conda 安装的效果是一样的。并且我们可直接在插件管理器上管理我们的插件。
当然同样可以使用 jupyter labextension
来管理插件:
命令 | 说明 |
---|---|
jupyter labextension list |
列出所有插件 |
jupyter labextension disable my-extension |
禁用插件 |
jupyter labextension enable my-extension |
启用插件 |
jupyter labextension install my-extension |
安装插件(从 npm 源安装) |
jupyter labextension uninstall my-extension |
卸载插件(最好不要使用) |
Tips
使用 labextension install 安装插件需要 node.js,他可以由 conda 来管理
插件推荐
我们可以从以下几个地方查找插件:
- 最万能的 github
- jupyterlab-contrib仓库维护了很多高质量有用的插件
- Topics jupyterlab-extension中列出了很多插件
语言包
jupyterlab/language-packs仓库维护了目前所有支持的语言包,他们会被发布到 PyPI 和 conda-forge 频道,具体对应语言的安装可以到仓库中对应语言的 readme.md 中查看:
pip install jupyterlab-language-pack-zh-CN
conda install -c conda-forge jupyterlab-language-pack-zh-CN
之后刷新浏览器(不需要重启服务)就能够在 Settings -> Language
中找到对应的语言包了。
jupyterlab-git
jupyterlab-git 是典型的需要后端提供服务还需要在前端绘制页面的插件,它提供了在 Jupyter 中使用 git 的能力。
conda install -c conda-forge jupyterlab-git
# jupyterlab 3 版本安装
conda install -c conda-forge "jupyterlab<4" jupyterlab-git
它会自动安装 Server 插件以及 labextension:
-> % jupyter server extension list
...
jupyterlab_git enabled
- Validating jupyterlab_git...
jupyterlab_git 0.44.0 OK
-> % jupyter labextension list
JupyterLab v3.6.8
...
@jupyterlab/git v0.44.0 enabled OK (python, jupyterlab-git)
jupyterlab_code_formatter
jupyterlab_code_formatter用于格式化单元格,他支持 black/isort:
他同样是一个典型的后端提供服务前端提供设置的工具。推荐开启设置中的 Auto format config
。
Tips
像这类后端提供服务的都需要重新启动下 Jupyter Server.
stickyland
stickyland是一个杀手级的功能。它能够将单元格固定成一个悬浮窗口使用。这样在对比数据的时候非常有用:
目前该插件要求 Jupyter < 4
,在 Jupyter 4 中可以使用右键菜单选择 为单元格输出创建新视图
来实现类似的效果,还有一个就是通过创建多个 Notebook 文件然后连接同一个内核,这样他们就可以共享函数和变量了,就可以通过拆分窗口的形式来预览了。
jupyterlab-vim
jupyterlab-vim即 Jupyter 中的 Vim 绑定。
Tips
在 MacOS 中无法重复使用 hjkl 此时需要在 Mac 终端执行defaults write -g ApplePressAndHoldEnabled -bool false
并重启浏览器,具体查看issues 62。
jupyterlab-execute-time
jupyterlab-execute-time会始终在单元格上显示运行时间。类似每次都执行 %%timelt
: