JupyterLab 中有哪些黑科技

JupyterLab 你是真的火了…

5 月 14 号 OpenAI 春季发布会 出现了这个画面:

openai_jupyter_lab

才知道 JupyterLab 是 OpenAI 的日常开发工具。感谢 OpenAI 亲自带货。

JupyterLab 拥有丰富的功能,并不只是 Python 解释器这么简单,让我来向你们展示它的强大!

〇、安装 JupyterLab

执行以下命令安装 JupyterLab:

mamba install -c conda-forge jupyterlab

Note: mambaminiforge 自带的包管理工具。大多数时候,你可以用 mamba 直接替代 conda,比如 mamba info --envs。使用 mamba 通常可以获得更高的下载速度。

一、制作 PPT

1.1 Notebook 转 PPT

只需两步,就能把 Notebook 转成 PPT:

  1. 设置 Slide Type:为保证页面被正确渲染,你需要设置 Cell 的 Slide Type。对于新版 Jupyter Lab,在右侧边栏上有带俩齿轮的按钮,点进去,然后一路点 [Property Inspector] -> [COMMON TOOLS] -> [Slide Type],在这里对 Cell 进行设置。

  2. 启动网页应用:打开 Terminal,来到 [YOUR_SLIDE].ipynb 所在路径,运行

    jupyter nbconvert --to slides [YOUR_SLIDE].ipynb --post serve
    

    这会在浏览器中打开一个 slide 网页应用,你可以用它来做 pre。值得一提的是,这个网页是有路由的。这意味着,如果你的 Jupyter 运行在服务器上,你可以用它来分享特定页面。

以防你不知道,JupyterLab 可以开 Terminal,位置在 [左上 + 号] -> [Other] -> [Terminal]

1.2 PPT 转 PDF

把 PPT 转存 PDF 也很简单:

  1. 把 PPT 网页路由的 # 号改成 ?print-pdf。修改后的网址形如:
    http://127.0.0.1:8000/[YOUR_SLIDE].slides.html?print-pdf
    
  2. 再用 Chrome 打印功能,把网页转存成 PDF 文件

二、运行 Java

在 Jupyter 中运行 Java 要用到 IJava。IJava 是一个 Java 内核,它允许用户使用 IPython 特性进行 Java 编程。

2.1 安装 IJava

  1. Releases 下载安装包,安装包形如 ijava-[VERSION].zip
  2. 解压 ijava-[VERSION].zip,进入文件夹中运行
    python3 install.py --sys-prefix
    
  3. 检查内核是否安装成功
    # 列出已安装的内核
    jupyter kernelspec list
    
    # 尝试在命令行中运行 java 内核
    jupyter console --kernel=java
    

2.2 内核管理

要管理 IJava 内核,我们需要了解一点内核管理命令。以下是一些常用命令:

  • 列出内核:jupyter kernelspec list
  • 安装内核:jupyter kernelspec install [KERNEL_DIRECTORY]
  • 移除内核:jupyter kernelspec uninstall [KERNEL_NAME]

关于换 Kernel 方法,请参见 miniconda3 换 Kernal

Note: 使用 jupyter kernelspec install 安装内核,可使用多项参数,下面是一个示例:

jupyter kernelspec install \
  ~/miniforge3/share/jupyter/kernels/java \
  --sys-prefix \
  --name java \
  --display-name "Java"

在这个命令中:

  • ~/miniforge3/share/jupyter/kernels/java 是内核路径,可用 jupyter kernelspec list 命令查看已安装内核的路径
  • --sys-prefix 选项确保内核在系统范围内可用,而不仅限于特定用户或虚拟环境。这对多用户系统或者需要在全局范围内共享内核的情况非常有用。如果你希望内核仅对当前用户生效应使用 --user 选项
  • --name java 指定了内核的名称 (kernel name),这是在编程环境引用内核时使用的名称
  • --display-name "Java" 则设置了在 Jupyter Notebook 或 Jupyter Lab 界面中,显示给用户的名称

三、绘制 Mermaid 图表

Mermaid 是一个流行的图表生成工具。用户可以在 markdown 单元格中使用 Mermaid 语法编写图表代码,并即时渲染。

安装 Mermaid 插件:

jupyter labextension install @jupyter-widgets/jupyterlab-mermaid

Mermaid 图表效果如下:

sequenceDiagram
    participant Alice
    participant Bob
    Alice->>Bob: Hello Bob, how are you?
    Bob-->>Alice: I am good thanks!

四、查看变量的值

variableInspector 是一个 Jupyter Lab 扩展,它允许用户直接查看交互中的变量。

安装变量查看器:

pip install lckr_jupyterlab_variableinspector

安装后,在 Notebook 空白处,打开右键菜单栏,然后点击 Open Variable Inspector 即可打开变量查看器。

variable_inspector

五、在服务器上使用 JupyterLab

在服务器上使用 JupyterLab 有诸多好处。比如无需再用 sz rz 传输文件,右击文件即可下载,拖拽文件即可上传。

5.1 启动 JupyterLab

# 对于 HTTP,使用 80 端口
jupyter lab --ip='0.0.0.0' --port=80 --no-browser --allow-root

# 对于 HTTPS,使用 443 端口
jupyter lab --ip='0.0.0.0' --port=443 --no-browser --allow-root

Note: 如需后台静默运行,大人请用:nohup [CMD] &

5.2 绑定域名

将 Jupyter Lab 服务绑定到 HTTPS 域名,需要经历以下步骤:

  1. 在域名提供商处,添加一条域名解析记录
  2. 在域名提供商处,将 DNS 解析绑定到 DNS 提供商
  3. 在 DNS 提供商那里,新增一条 DNS 解析记录
  4. 在域名提供商购买或者薅一个 SSL 证书,并和域名绑定
  5. 下载证书文件(俩文件,后缀是 .pem.key),然后运行
    jupyter lab --generate-config
    
    这会生成一个 Jupyter 配置文件。打开配置文件,新增两条配置:
    c.ServerApp.ssl_certfile = '[DIR]/[PEM_FILE_NAME].pem'
    c.ServerApp.ssl_keyfile = '[DIR]/[KEY_FILE_NAME].key'
    

对于不同的 PaaS 供应商,操作不同,这里就不详述了。

六、合并 ipynb 文件

nbmerge 支持将多个 ipynb 文件合并成一个文件。

安装 nbmerge

pip install nbmerge

安装完成后,使用以下命令合并文件:

nbmerge file1.ipynb file2.ipynb file3.ipynb > merge.ipynb

七、显示代码运行时间

jupyterlab-execute-time 插件能记录并显示每个代码单元格的执行时间。

安装插件:

pip install jupyterlab_execute_time

显示效果:

jupyterlab_execute_time