跳转至正文
GZ Cloudhome Logo

配置 Jupyterlab 使其支持多个可选 kernel

发布于:2023 年 7 月 10 日 at 19:33
更新于:2023 年 8 月 14 日 at 16:02

之前在用 Jupyterlab 的时候,用哪个 conda 环境,想用这个环境下的 Python 作为 kernel 就只能在对应环境下再安装一个 jupyterlab。这种方法既引入了额外的存储空间占用,又没有灵活性。我更期望的是能够在一个 jupyterlab 下,可以对每个 ipynb 文件指定不同的 kernel。

幸运的是,经过一番搜索,解决方案并不困难。下面是需要做的步骤:

  1. 假设我们的 jupyterlab 安装在 conda 的 jupyter_env 环境下,在命令行通过命令

    conda activate jupyter_env
    jupyter lab --port=8888

    来启动 jupyterlab;

  2. 新建需要增加到 jupyterlab 的 python kernel 对应的 conda 环境,这里新建的环境名称为 test_env,你可以更换为你自定义的名字(如果已经有了对应的环境,则不需新建,可以跳过这步):

    # 这里使用的 Python 版本为 3.9,你可以根据实际更改到想要的 Python 版本
    conda create -n test_env python=3.9
  3. 切换到新建的环境中,并安装 ipykernel,使之能够被 jupyterlab 使用:

    conda activate test_env
    conda install ipykernel

    随后注册这个环境下的 kernel,使其能够被 jupyterlab 发现:

    python -m ipykernel install --user --name <name> --display-name <display name>

    命令 python -m ipykernel install 做了什么?

    上面的命令将以 install 模式运行 ipykernel module。运行后,文件系统中将会新建描述 kernel 的 JSON 文件和图标文件。在 Windows 中该 JSON 文件位于 C:\Users\username\AppData\Roaming\jupyter\kernels 目录,文件内容为

    {
        "argv": [
            "path\\to\\kernel\\exec",
            "-m",
            "ipykernel_launcher",
            "-f",
            "{connection_file}"
        ],
            "display_name": "display name",
            "language": "python",
            "metadata": {
            "debugger": true
        }
    }    

    jupyterlab 会检查此目录下的 kernel 描述文件。因此,有了 kernel 描述文件后,就可以在 jupyterlab 上使用对应的文件了。

此时,打开浏览器中 jupyterlab 对应的界面(或刷新网页),即可看到新的 kernel 加入了进来。