JupyterLab使用教程:程序员的笔记本神器v2.0
之前写过一份JupyterLab
的使用教程,但是随着个人使用时间的增加和更多优秀插件的出现,断断续续我基于JupyterLab:v3.0+
衍生出了自己的最佳实践,本篇文章将从以下方面更加全面地介绍JupyterLab
:
- 搭建安装
- 基本功能
- 插件推荐
- 容器化最佳实践
最终成品如下图所示,有兴趣的话一起来使用看看吧✨
介绍
了解JupyterLab
之前先说下什么是Jupyter Notebook
,简单来说它是一个交互式的开发环境,其提供了在Web
上编写运行代码的能力,还可以同时使用md
语法编写文档。
而JupyterLab
是Jupyter Notebook
的下一代产品,如今已经发展到第三个大版本了,其主要优势有:
- 更现代化的界面设计和更灵活的架构
- 提供终端交互和文件浏览器
- 结合插件可以快速打造成Web上的IDE笔记本
通过使用JupyterLab
,我们能够以灵活,集成和可扩展的方式处理代码与文档,对于以下人群非常有帮助:
- 随时随地希望试验一些代码片段,如Python、Julia、R、Go、Scala等
- 大数据开发&机器学习进行数据分析、处理、建模等
- 作为笔记本,可以将代码的输入输出解释直接导出成笔记文档,结合插件还可以绘制流程图等
安装
接下来,我将以Python为默认语言来搭建JupyterLab
,这里我为了获取一个干净的环境直接使用Docker
进行构建:
|
|
用Docker
目的是方便出错后删除重来,这里仅做演示,大家直接在本机操作即可,只需要确认你安装好了Python
基本环境就行:
|
|
有了Python
环境就可以直接安装JupyterLab
:
|
|
这一行命令我们就已经安装好了JupyterLab
,启动起来试试看吧:
|
|
直接访问:http://127.0.0.1:8888/lab?token={TOKEN}
就能看到界面了!怎么样,方便吧。但是要想更加优雅地使用JupyterLab
,还是得进行一些配置,让我们继续吧。
基本功能
设置密码
每次启动JupyterLab
默认是通过Token
的形式进行访问的,但是Token
每次都不一样,而且还会过期,所以我们还是设置成密码的形式进行访问吧:
|
|
生成密码:
|
|
修改JupyterLab
配置文件:
|
|
编辑这个文件vim /root/.jupyter/jupyter_lab_config.py
,设置以下参数:
|
|
|
|
此时再次进入http://127.0.0.1:8888/
就需要输入密码了,为了方便后续一些功能的演示,我们顺便建立一个交互式脚本吧,操作流程如下图:
代码交互
代码提示
进入文件后,我们先使用!pip install numpy
安装一个第三方库用于测试。在代码关键字后按Tab
即可看到代码提示:
文档注释&查看
按Shift + Tab
即可看到文档注释提示:
注:如果代码提示功能有问题,设置下jedi
版本,pip install jedi==0.17.2
。
对于数据科学方向的程序员来说,一些常用库的文档查看特别方便,Jupyterlab
已经将常用文档内置,还提供了关键函数搜索功能,再也不用打开官方文档查找了:
代码调试
JupyterLab
默认支持代码调试,使用也很简单,点击右上角的Bug
图标开启即可:
文档多窗口
一般开发者的屏幕都是比较大的,这个功能特别适合左边窗口实验代码,右边看教程文档的情景:
cell
可以拖拽且输出可以新窗口显示
随时启动新的终端交互
TOC目录
JupyterLab
脚本是可以编写MD
文本的,为了方便代码的可读性,侧边栏提供了目录展示功能,程序员可以更加方便地对自己代码进行管理:
风格设置
按键风格
支持vim emacs
等按键风格:
界面&代码主题
JupyterLab
默认提供了黑暗&明亮两种主题,开发者可以自由使用,如果对于主题有更多要求,接下来在插件部分我会介绍我使用的插件主题:
编辑器界面主题设置:
插件
JupyterLab
本身的功能了解上面那么多就已经够日常基本使用了,但是社区的开发者还是贡献了很多有意思的插件。接下来我会介绍一些比较基础但又很实用的插件,让大家的效率进一步提升。
jupyterlab_code_formatter
代码格式写插件,我使用的是Python
,用这个插件可以设置保存的时候自动用black和isort
进行代码格式化,安装:
|
|
安装完成后,脚本界面右上角就会有一个格式化按钮,开发者也可以设置保存就触发格式化:
ipydrawio
开发者除了日常开发,还有文档编写工作,涉及到文档编写,基本上都会涉及到流程图绘制需求,ipydrawio
则可以让你方便地在JupyterLab
绘制流程图,安装:
|
|
使用起来也非常方便,还可以分享出去,支持绘制的类型如下:
安装成功后和之前新建脚本的方式一样绘制流程图:
jupyterlab-unfold
这个插件让JupyterLab
的文件浏览具有了和IDE一样的功能,原本JupyterLab
在目录间跳转是一级一级进出,有了这个插件可以按照目录树的形式进行操作,极大地提升了打开不同目录下脚本的效率。
|
|
使用效果截图:
Theme
JupyterLab
本身仅提供了简单的黑白两套主题,但是我对代码主题还是挺有追求的,所以也在社区找了下看是否有比较好的主题实现,万幸我个人常用的主题都有其他人开源了出来,大家有兴趣了可以试试:
- theme-darcula:非常漂亮的
Darcula
主题,目前在JupyterLab
主题里面热度最高 - jupyterlab-theme-solarized-dark:
Solarized
黑暗主题,效果可以看第一部分的效果展示图
安装:
|
|
Darcula
主题效果图如下:
汉化
官方针对中文用户提供了汉化包,还是挺良心的:
|
|
效果如下:
容器化最佳实践
为了方便在不同系统环境下能够快速使用JupyterLab
,于是我选用Docker
构建镜像,具体配置见pylab-jupyterlab-docker这样可以直接将配置和插件全部统一为镜像,这样有以下好处:
- 跨平台,其他平台只要安装
Docker
就可以一键使用JupyterLab
- 插件配置:
- 保存则自动代码格式化
- 主题支持:
Solarized
和Darcula
- 中文汉化支持,默认还是英文
- 代码变量跳转支持
- 流程图、目录树等
- 终端支持
oh my zsh
所以上面介绍了这么多,你只需要看一遍下来熟悉下相关概念即可,倒是不用从头都搭一遍,如果你要使用,运行下面这行命令即可:
|
|
享受JupyterLab
吧,如有错漏,请留言交流,谢谢。
- 原文作者:howie.hu
- 原文链接:https://www.howie6879.com/post/2021/26_jupyterlabv2_tutorial-/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
