本文为我在用 Jupyter Lab 时的备忘笔记,会持续更新。

简介

做数据科学的同学对 jupyter notebook 应该很熟悉,但他的一个缺点是不能够同时打开多个文件。jupyter lab 可以算的上是一个简易的 IDE,你可以同时打开多个窗口,打开终端,对窗口进行分割,同时编辑不同类型的文件。 如果正在使用 jupyter notebook,那么没有理由不切换到 jupyter lab 上。

其主界面如下:

jupyter lab 界面

jupyter lab 的文档在 JupyterLab Documentation

安装与启动

# 安装
pip install jupyterlab

# 启动 jupyter lab
jupyter lab

通过密码访问

在启动 jupyter lab 之后,默认是通过在 url 后面跟上一个 token 来访问的。有时候关闭了页面之后,往往又需要去控制台复制这个带有 token 的 url,常常显得不够方便,为此可以设置一个密码,通过密码来访问。

先生成配置文件,然后配置密码,命令如下:

$ jupyter notebook --generate-config
$ jupyter notebook password

这会要求用户输入需要设置的密码。设置完成之后,就可以通过输入密码来访问 jupyter lab 了。

在服务器上部署

一种场景是,希望在服务器上运行 jupyter lab,然后可以在任何地方,使用任何设备访问到 jupyter lab 环境。默认情况下,只能通过 http://localhost:8888 这个地址访问,通过服务器的 IP 是访问不了的,需要做一些配置。

初始阶段 jupyter lab 采用默认配置,如果需要对其个性化配置,需要先生成配置项:

# 生成配置文件
$ jupyter notebook --generate-config

这个时候在用户根目录下的 .jupyter 目录下,就多出来了一个 jupyter_notebook_config.py 文件,在这个文件里,用户可以对 jupyter lab 进行个性化配置。

需要修改的地方主要有下面几处:

# 当你使用服务器的 ip 访问的时候,可以不配置这一项
# 当时如果使用外网穿透技术,访问的 ip 不是部署 jupyter lab 的机器的 ip 的时候,
# 就需要配置这个了,否则部分功能无法正常工作
c.NotebookApp.allow_origin = '*'

# 修改可以通过本机的任意一个 ip 地址来访问 jupyter lab 环境
c.NotebookApp.ip = '0.0.0.0'

# 关闭自动打开浏览器的行为
c.NotebookApp.open_browser = False

# 修改端口,默认为 8888,根据自己的需要修改
c.NotebookApp.port = 8000

Magic Command

此命令可以查看函数的性能瓶颈,看到函数每一行的运行次数和时间。

%load_ext line_profiler

%lprun -f Quick.sort Quick.sort(nums)

快捷键

Notebook 存在两种模式,命名模式和编辑模式,可以使用 Esc 从编辑模式切换为命令模式,使用 Enter 进入编辑模式。

在命令模式下,有下列快捷键可以使用:

m: 将 cell 切换为 markdown 模式

y: 将 cell 切换为代码模式

D+D: 删除 cell

Shift+↑ / ↓: 选中多个 cell,选中后可以进行删除、复制、粘贴、运行等操作。

Shift+M: 合并选中的 cells

Shift+Tab: 代码提示,光标定位到某个函数、某个模块的时候,按这个组合键会得出提示

在编辑模式,有下面一些技巧:

输入 ?function-name 可以得到对应函数的签名和文档,由此可以确定函数的输入和功能等信息,比如:

?len

输入 ??function-name 可以得到函数更加详细的信息,包括源代码。