jupyter-themes是专为jupyter notebook设计的稳定黑夜模式方案,通过直接注入css覆盖全部ui元素,支持gruvboxd等暗色主题,需用jt -t主题名-t-n命令启用并重启进程生效。

jupyter-themes 是目前最稳定、兼容性最好的黑夜模式方案,尤其适合 Jupyter Notebook(非 JupyterLab)用户。它不依赖前端构建,直接注入 CSS,对旧版浏览器和远程服务器环境也友好。
为什么不用 %colors 就算黑夜模式?
%colors Linux 只改代码编辑区的语法高亮配色,不影响菜单栏、侧边栏、输出区域、标题文字等——整个页面仍是白底。它本质是 Pygments 样式切换,不是主题系统。真正意义上的“黑夜模式”需覆盖全部 UI 元素,必须用 jupyter-themes 或自定义 CSS。
安装与启用 jupyter-themes 的关键步骤
注意:该工具仅支持传统 Jupyter Notebook(jupyter notebook 命令启动),不适用于 JupyterLab 4.x+(Lab 有原生主题系统,用 pip install jupyterlab-night 等扩展)。
- 运行
pip install jupyterthemes,不要加-i镜像参数(部分镜像源会同步滞后,导致安装低版本) - 升级确保最新:
pip install --upgrade jupyterthemes - 查看可用主题:
jt -l,推荐暗色系:gruvboxd、monokai、oceans16 - 应用主题并保留工具栏和主机名:
jt -t gruvboxd -T -N - 重启 Jupyter Notebook 进程(不是刷新页面),否则首次设置不生效
常见失败原因和绕过方式
报错 Command 'jt' not found:说明 shell 没识别到命令,通常因 pip 安装路径未加入 $PATH。可改用 Python 模块调用方式:
python -m jupyterthemes -t monokai -T -N
Windows 用户遇到权限错误:不要用 PowerShell 以管理员身份运行,而应关闭所有 Jupyter 进程后,在普通 CMD 中执行;或改用 jt -r 先恢复默认,再重试。
设置后仍显示白底:检查是否误启用了 JupyterLab(地址栏是 localhost:8888/lab),jupyter-themes 对 Lab 完全无效。确认启动的是 Notebook:jupyter notebook,且地址为 localhost:8888/tree 或 /notebooks/xxx.ipynb。
不想装第三方工具?用原生 custom.css 手动补丁
如果你在受限环境(如某些云平台或容器)无法安装 jt,可手动写一个最小化暗色 CSS:
mkdir -p ~/.jupyter/custom
echo "
body { background: #1e1e1e !important; }
.CodeMirror { background: #252525 !important; color: #d4d4d4 !important; }
.output_subarea { background: #252525 !important; }
" > ~/.jupyter/custom/custom.css
然后重启 Jupyter。这种方式不改字体、不调间距、不处理按钮悬停态,但能快速压住刺眼白底——适合临时救急或 CI/CD 环境中固化配置。
真正让黑夜模式“稳下来”的关键是:确认你用的是 Notebook 而非 Lab,且第一次设置后必须杀进程重启,不是 Ctrl+R。很多用户卡在这一步,反复执行jt 命令却没效果,其实只是内核还在跑老样式。











