最直接有效的方式是设系统环境变量 LANG=zh_CN.UTF-8 或安装官方语言包 jupyterlab-language-pack-zh-CN;前者轻量快,后者汉化更全但需额外配置。

Jupyter Notebook 界面默认是英文,想变成中文,**最直接有效的方式就两种:设系统环境变量 LANG=zh_CN.UTF-8,或者装官方语言包 jupyterlab-language-pack-zh-CN**。前者快、轻量、适合多数人;后者汉化更全,尤其对 JupyterLab 更友好,但需要多一步配置。
设置 LANG 环境变量(Windows/macOS/Linux 通用)
这是最快生效的方法,不依赖额外包,靠系统级语言提示触发 Notebook 自动切换。
- Windows:右键“此电脑”→“属性”→“高级系统设置”→“环境变量”→在“用户变量”里新建:
LANG=zh_CN.UTF-8 - macOS/Linux:在
~/.zshrc或~/.bash_profile末尾加一行:export LANG=zh_CN.UTF-8,然后运行source ~/.zshrc - 必须完全退出所有
jupyter notebook进程(包括后台的 Python 进程),再重新执行jupyter notebook才会生效 - 常见坑:
zh_CN.UTF8(少个短横)或zh-CN.UTF-8(用下划线或短横混用)都不行,必须严格写成zh_CN.UTF-8 - 部分旧版本 Notebook(如 6.1.x 之前)可能只汉化菜单栏,不汉化右侧侧边栏或弹窗,属于已知限制
安装 jupyterlab-language-pack-zh-CN 并配置 language 选项
这个包是 Jupyter 官方维护的简体中文语言包,覆盖更完整,尤其在 JupyterLab 下表现稳定,Notebook 也能用,但需手动指定语言。
- 先安装:
pip install jupyterlab-language-pack-zh-CN - 安装后启动
jupyter notebook,打开任意 notebook 页面 → 点顶部菜单Settings→Language→ 选Chinese (Simplified, China)→ 点Change and reload - 若没看到
Language菜单项,说明当前运行的是 classic Notebook(非 Lab),此时还需手动修改配置文件:jupyter notebook --generate-config生成jupyter_notebook_config.py,然后在里面加一行:c.NotebookApp.language = 'zh-CN' - 注意:
zh-CN和zh_CN在这里不能互换 —— 配置文件里必须用短横zh-CN,环境变量里必须用下划线zh_CN.UTF-8 - 重启服务后仍显示英文?检查是否漏掉
--generate-config后没保存文件,或配置路径不对(可通过jupyter --config-dir确认)
为什么改了 LANG 还是英文?常见失效原因
不是所有“看起来像重启”的操作都算真正重启 —— 这是最常被忽略的环节。
- 只关浏览器标签页不算,
Ctrl+C终止终端里的jupyter notebook进程才算 - 用 Anaconda Navigator 启动的 Notebook,得在 Navigator 里先“Stop”服务,再点 Launch
- 某些 IDE(如 VS Code)内置的 Jupyter 服务不受系统
LANG影响,它走的是自己沙箱环境,得单独配其内核语言 - Mac 上用了 Homebrew 安装的 Python,但终端 shell 是 zsh,却把
export LANG=...写进了.bash_profile,结果不生效 - Docker 镜像里汉化失败?得在
Dockerfile中显式设置ENV LANG zh_CN.UTF-8,且基础镜像得自带中文 locale 支持(比如用debian:slim就不行,得用ubuntu:22.04并apt install locales)
汉化 ≠ 中文字体渲染正常
界面变中文只是第一步;如果图表、代码输出里的中文显示为方块,那是字体缺失问题,和语言设置无关。
- Matplotlib 中文乱码:在 notebook 里运行:
plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', 'DejaVu Sans'] - Jupyter 输出单元格中打印中文正常,但
print('测试')显示 ????:检查 Python 文件是否以 UTF-8 编码保存,且没被编辑器悄悄转成 GBK - Linux 服务器上无图形界面,用
jupyter notebook --no-browser --port=8888远程访问,浏览器语言是中文但 Notebook 仍是英文?优先确认服务端LANG是否生效(echo $LANG)


















