如果你过去几年在 Linux 上做过数据相关的工作,大概率见过 Jupyter。2026 年 8 月发布的 JupyterLab 4.6 和配套的 Notebook 7.6 是这个项目近年来少有的「真正在乎日常使用感受」的更新,在 Linux 上几乎零摩擦就能用上。本指南会讲讲新特性、在 Ubuntu / Fedora / Arch 上的干净安装方式、如何管理 kernel 与扩展,以及如何把旧的 jupyter notebook 工作流迁过来。

为什么这次升级值得关注

4.6 的版本说明里没有花哨的 AI 功能,也没有改外观,它解决的是日常里反复出现的那些小摩擦:

  • 构建系统从 webpack 切换到 Rspack,官方数据是构建扩展(以及 JupyterLab 本身)提速大约 5 倍。如果你在维护私有扩展,这就是每次重建从一杯咖啡变成一顿午饭的差别。
  • 新增对横屏活动栏布局的支持,在宽屏笔记本上能省下不少纵向空间。
  • 可以把左侧栏和右侧栏之间的面板区段拖来拖去,双显示器高级用户的工作流终于跑得通。
  • 内核侧栏在列表视图和树视图中都显示内核标识符,工具栏新增一个按钮,一键关闭闲置内核
  • postcssbrace-expansion 等传递依赖升级到补丁版本,审计时这类升级会悄悄帮你清掉一堆安全告警。

配套的 Notebook 7.6 共用同一条构建管线,内核管理上的改进也会同步到位。如果你已经在用 Notebook 7,不必为了这次升级而切换;但如果你之前一直因为「构建太慢」而犹豫,Rspack 迁移是压垮骆驼的最后一根稻草。

JupyterLab 4.6 主界面:文件浏览器侧栏、Notebook 编辑器、内核指示器和多内核启动面板

在 Ubuntu 26.04(以及 24.04)上安装

现代 Ubuntu 上最干净的安装方式是 pipx,它会给你一个隔离的 Python 虚拟环境,不和系统解释器打架。第一次用 pipx 就先装好:

Bash
sudo apt update
sudo apt install -y pipx
pipx ensurepath
# 重开一个 shell,让更新后的 PATH 生效

接着把 JupyterLab 和 Notebook 一起装:

Bash
pipx install jupyterlab --python python3.12
pipx inject jupyterlab notebook
pipx inject jupyterlab jupyterlab-git
pipx inject jupyterlab pandas numpy matplotlib

pipx inject 是大多数新手会漏掉的一步——它会把包安装到 JupyterLab 所在的同一个虚拟环境里,Jupyter 启动的内核才能看到这些库。如果你只是 pip install --user,结果往往是 Jupyter 找不到任何你装的库。

验证安装结果:

Bash
jupyter --version
# Selected Jupyter core packages...
# IPython          : 8.37.0
# jupyter_client   : 8.6.3
# jupyter_core     : 5.7.2
# jupyter_server   : 2.16.0
# jupyterlab       : 4.6.0
# notebook         : 7.6.0
# qtconsole        : not installed

如果版本低于 4.6 / 7.6,说明你其实没有升级——看一下 pipx list,在新虚拟环境里重新跑一遍 inject。

JupyterLab 4.6 文档主页截图:文件浏览器、运行中的内核与终端列表以及一个包含代码单元的 Notebook

在 Fedora 44 以及 RHEL 系发行版上安装

Fedora 的 DNF 团队一直维护着 jupyterlab,但 Fedora 44 仓库里的版本通常比上游 4.6 慢一两个版本。如果你想今天就用上最新版,直接用同一份 pipx 脚本:

Bash
sudo dnf install -y pipx
pipx ensurepath
pipx install jupyterlab --python python3.13
pipx inject jupyterlab notebook

如果是生产环境、更看重可复现性,把 JupyterLab 钉到项目虚拟环境里:

Bash
python -m venv ~/venvs/ds
source ~/venvs/ds/bin/activate
pip install jupyterlab==4.6.* notebook==7.6.*
python -m ipykernel install --user --name=ds --display-name="Data Science (4.6)"

最后一行会在 ~/.local/share/jupyter/kernels/ds/ 注册一个内核描述文件。下次启动 JupyterLab 会自动识别,不用动配置文件。

在 Arch Linux 与 Manjaro 上安装

Arch 是三者里最简单的:pacman 直接打包 JupyterLab,通常在上游发布几天内就更新到位。

Bash
sudo pacman -S jupyterlab jupyter-notebook python-pipx
pipx ensurepath

如果你想立刻就用最新版,而 pacman 还没追上,同样可以用 pipx 装在系统 python 里——Arch 的 Python 足够新,4.6 直接跑得起来。

第一次启动后值得改的几项设置

4.6 的默认值已经不错,但有几项设置能让你后续少踩坑。打开 JupyterLab 里的 Settings → Settings Editor:

  • Code Editor → autoClosingBrackets:如果你大量写 Python,开启它——每行省一次按键。
  • Keyboard Shortcuts → 给「关闭闲置内核」绑快捷键:绑到 Ctrl+Shift+K,新按钮就变成一键可达。
  • Notebook → 关闭时关闭内核:保持开启。后台内核是「为什么我笔记本风扇狂转?」投诉的最大来源。

如果你更喜欢命令行,这些设置也在 ~/.jupyter/labconfig/settings/page.json:

Json
{
  "autoClosingBrackets": true,
  "codeCellConfig": {
    "autoClosingBrackets": true,
    "lineWrap": "wordWrap"
  },
  "kernelManager": {
    "shutdownOnClose": true
  }
}

刷新浏览器标签页就会生效——JupyterLab 每次加载页面都会读这个文件。

JupyterLab 项目主页预览:一个包含 Python 代码、表格输出和内联交互式图表的 Notebook

从经典 Notebook 迁移过来

如果你还留着老版本 6.x 的 ~/.jupyter/jupyter_notebook_config.py,下面是简要的迁移说明:

  • 经典 Notebook 不再是一个独立的 server——Notebook 7 就是 JupyterLab,只是默认开启了 Notebook 入口。没有 jupyter notebook 命令可用了,统一用 jupyter lab,从启动面板里选 Notebook 即可。
  • Python 内核不变,凡是 IPython 8.x 下能跑的代码都继续能跑。
  • server 端的配置文件现在叫 jupyter_server_config.py,不再是 jupyter_notebook_config.py。如果你之前自定义过认证、端口绑定,或者设置过 c.NotebookApp.notebook_dir,把这些手动搬过去——c.ServerApp.root_dir 对应原来的 c.NotebookApp.notebook_dir
  • 兼容 JupyterLab 4.0 的扩展仍然能加载,更老的版本需要看官方文档里的迁移指南。

迁移后做一次冒烟测试:

Bash
jupyter lab --no-browser --port=8888
# 在浏览器里打开 http://localhost:8888/lab
# 新建一个 Python 3 notebook,跑 `import numpy; numpy.__version__`
# 检查右上角内核指示器显示「Python 3」且是绿点

如果内核点是灰色或红色,说明迁移漏掉了一个 kernel spec。运行 jupyter kernelspec list,看到 (disabled) 的就重新注册一次。

把 JupyterLab 跑成系统服务

如果你有一台家用服务器或者用 SSH 管理的实验机,用 systemd 起 JupyterLab 很合适:

Bash
sudo tee /etc/systemd/system/jupyterlab.service > /dev/null <<'UNIT'
[Unit]
Description=JupyterLab 4.6
After=network.target

[Service]
Type=simple
User=jupyter
WorkingDirectory=/home/jupyter/notebooks
ExecStart=/home/jupyter/.local/bin/jupyter lab --no-browser --ip=127.0.0.1 --port=8888 --config=/home/jupyter/.jupyter/jupyter_server_config.py
Restart=on-failure

[Install]
WantedBy=multi-user.target
UNIT

sudo systemctl daemon-reload
sudo systemctl enable --now jupyterlab

远程访问用 SSH 隧道:

Bash
ssh -L 8888:127.0.0.1:8888 yourserver

超出个人使用的场景,前面再套一层真正的反向代理(Caddy 或 nginx),把 HTTPS 打开——Jupyter 自带的 token 认证只适合本地。

Jupyter Notebook 7.6 极简界面:顶部工具栏、Markdown 与代码单元的清爽阅读视图

什么时候用 Notebook 7 而不是 JupyterLab

Notebook 7 和 JupyterLab 用的是同一套代码,只是默认选了 Notebook 入口。实际体验差别很小但很明确:

  • Notebook 7 默认隐藏文件浏览器,留给 notebook 本身的水平空间更大。
  • 启动面板默认隐藏,要新建文件时点显式的「new」按钮。
  • 顶层 UI 元素更少,在平板或者手机上看更舒服。

如果你的工作流是「打开一个 notebook、滚动、改、关」,Notebook 7 更安静。如果你的工作流是「同时开着十个 notebook、再加一个终端、一个文件浏览器、一个 console」,还是 JupyterLab 更合适。

pipx inject jupyterlab notebook 可以两个一起装,在启动面板里运行时再选。

真正值得关注的变化

版本日志里还有几项对运维和扩展作者有用、但很少出现在宣传里的改进:

  • 内核管理器现在公开一个关闭闲置内核动作,UI 里以工具栏按钮呈现。当你同时开了十本 notebook、只有一本活跃时,这一个按钮比手动一个个找省事得多。
  • JupyterLab 现在内置了 server 端 jupyverse,作为 jupyter-server 的替代后端。如果你需要服务端执行(比如 kiosk 上跑 notebook),jupyverse 现在是受支持的后端,不再是另一个需要单独追踪的项目。
  • 外部内核(由其他应用启动的内核,比如 Blender 脚本面板里的那种)现在会出现在内核选择对话框里。以前你得死记 kernel JSON 连接文件的路径。
  • 文件浏览器的面包屑导航现在可编辑、带补全。编辑时按 Tab 就有路径补全。改动小,但真的省时间。

常见问题排查

  • 新建 notebook 时「Kernel not found」:运行 jupyter kernelspec list。如果缺了,用 python -m ipykernel install --user --name=&lt;name&gt; 重建 spec。
  • 「Port 8888 is already in use」:有另一个 JupyterLab 实例在跑。pkill -f 'jupyter-lab' 清理掉老的;或者用 --port=8889 换一个端口。
  • 扩展显示「needs rebuild」:在 kernel 虚拟环境里跑 jupyter labextension list 看哪些过期,然后 pipx rebuild jupyterlab 重新编译它的 webpack/Rspack 资源。webpack 时代这一步要 10 分钟,Rspack 时代大约 2 分钟。
  • 浏览器标签里仍然是经典 Notebook UI,即使你已经装了 4.6:老的 Notebook 6 安装抢占了路径。which jupyter notebook 找到它,用 pipx uninstall notebook 卸掉,再 pipx inject jupyterlab notebook 装回 7.6 版本。

总结

JupyterLab 4.6 是一次低调但有意义的升级。Rspack 迁移在你碰扩展的第一秒就回本,新的内核侧栏和一键关闭按钮解决了「我有八个内核在跑,不知道哪个是活的」这种日常问题,横屏活动栏让 13 寸笔记本不再需要上下滚动。配套的 Notebook 7.6 让你可以挑任意一个入口而不损失功能。

Linux 上的安装路径都很直接——Ubuntu 和 Fedora 用 pipx,Arch 用 pacman——你现有的内核和 notebook 都不用迁移数据,直接就能用。如果你心里没底,先在一个不重要的项目上试一下;一旦看到那个内核侧栏,剩下的一切都会被说服。

官方文档:https://jupyterlab.readthedocs.io/en/stable/

最后修改: 2026年8月23日

作者

评论

发表评论

您的邮箱地址不会被公开。