JupyterLab是一个集文档编写、代码开发、代码运行3种功能于一体的交互式编程环境,不同于传统的PythonIDE,在JupyterLab中我们可以在一个页面内同时编写Markdown内容和Python代码,还可以直接运行代码并以文本、图表、表格等直观的形式展现运行结果,此外它也有很多插件实现更多的扩展功能。JupyterLab是一个基于HTTP的服务端程序,需要通过浏览器访问,因此我们也可以将其部署在服务器上供其他人查阅和合作编写Jupyter文档。JupyterLab主要用于教学文档编写、数据分析、机器学习等领域。
注意:名字Jupyter取自Julia、Python、R三种编程语言的首字母(Jupyter文档支持多种语言,不过其中最常用的还是Python)。
实际上更早我们可能听说过Jupyter Notebook,我们可以将JupyterLab理解为Notebook的升级版,它们编辑的文件格式是一样的,操作方式也大致相同,但JupyterLab编辑器功能更强大,操作方式设计的也更人性化,后续会逐步取代老版Notebook编辑器。Jupyter Notebook设计、操作都比较奇葩,不符合一般人的思维,虽然仍有一些拥簇者,但这里不推荐使用。
JupyterLab可以全局安装,也可以在虚拟环境中安装。执行以下命令安装JupyterLab。
pip install jupyter
执行后会自动安装非常多的依赖,安装完成后,输入以下命令启动JupyterLab。
jupyter lab
注:实际上安装jupyter
后Jupyter Notebook和JupyterLab会同时安装,要启动老版Jupyter Notebook可以执行jupyter notebook
命令。
我这里使用的是Windows系统,运行命令后会弹出默认浏览器,并访问JupyterLab的主页面,地址为http://localhost:8888
。主页面中左侧展示的文件列表就是运行JupyterLab的目录,我们可以在这里创建和管理Jupyter文档。
注:我这里是使用虚拟环境安装的,因此有一个venv
文件夹。
在文件列表页面中,我们可以使用右键菜单中点击New Notebook
创建Jupyter文档,创建后会生成一个对应的.ipynb
文件,它就是Jupyter文档格式。
Jupyter文档是以Cell为单位组织的,一个Cell可以是Markdown类型、Code类型或是Raw类型(几乎不会使用)。我们编写一个Jupyter文档,其实就是编写许多Markdown类型的Cell作为正文和Code类型的Cell作为具体执行的Python代码。我们创建一个Cell后,可以在上方的工具条中对Cell的类型进行切换。
对于Markdown文档,我们编写好后点击运行按钮即可切换到预览模式,双击Cell即可切回编辑模式。
JupyterLab也支持LaTeX公式和图片的渲染显示,有关Markdown语法这里就不多介绍了,可以参考Markdown相关章节。
对于Python代码,我们直接点击运行按钮即可显示代码输出。
如果想要清空输出,可以在Cell上点击右键选择Clear Cell Output
。
此外,在代码块中我们也可以执行Shell命令,这需要在命令前加上!
,例如!ls
。
JupyterLab的代码Cell支持显示文本、图表、表格信息,实际开发中经常用到。如下是输出这些类型的示例代码。
实际上,Web版本的JupyterLab在本地使用不是很方便,我们需要启动JupyterLab服务端并打开浏览器操作Jupyter文档,这和一般的软件操作方式都很不同;此外Web版的JupyterLab也缺乏IDE中的代码补全、智能跳转、单步调试等功能,真正用起来还是比较困难的。在实际开发中,本地编写Jupyter文档我们可能会更倾向于使用VSCode。
在VSCode中,我们安装Python和Jupyter这两个插件即可编辑Jupyter文档。VSCode中的操作和Web版的JupyterLab类似,但有更强大的代码编辑体验,我们掌握了前面Web版的操作方法后,使用VSCode编辑Jupyter文档也就轻车熟路了。