jupyter notebook 7+ 中 c.notebookapp.code_cell_config 已被弃用,直接修改 jupyter_notebook_config.py 无效;应改用 jupyter lab 的设置或前端配置方式。

直接改 jupyter_notebook_config.py 不起作用
很多人以为在 jupyter_notebook_config.py 里加 c.NotebookApp.code_cell_config = {"tabSize": 4} 就能生效,但实际不会——因为 Notebook 7+ 已弃用该配置项,它只对旧版(配置文件。
codeCellConfig 必须写进高级设置编辑器
真正起效的方式是通过 Jupyter 的「高级设置编辑器」写入 JSON 配置。打开 Jupyter Notebook 页面 → 点击右上角 Settings → Advanced Settings Editor → 左侧选 Code Cell → 右侧编辑器中填入:
{
"tabSize": 4,
"insertSpaces": true,
"indentUnit": " "
}
说明:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
-
tabSize控制 Tab 键等效空格数,设为4即按一次 Tab 插入 4 个空格 -
insertSpaces设为true才让 Tab 插入空格;若为false,则插入真实\t字符(多数 Python 项目不推荐) -
indentUnit是冗余字段,仅当insertSpaces为true时被忽略,可留空或删掉
为什么改了没反应?检查三个关键点
常见失效原因不是配置错,而是环境卡点:
- 没在「编辑模式」下按 Tab:必须先点击代码单元格内部(绿色边框),再按 Tab;命令模式(蓝色边框)下 Tab 无效
- 被扩展劫持:运行
jupyter labextension list,确认没启用jupyterlab-tabnine、kite或jupyterlab-lsp这类会拦截 Tab 的插件 - 浏览器缓存残留:改完配置后,强制刷新页面(
Ctrl+Shift+R/Cmd+Shift+R),不要只点「重新加载」
想全局统一?别碰配置文件,用主题工具更稳
如果希望所有新 notebook 默认 4 空格缩进且长期生效,jupyterthemes 比手动配更可靠:
- 安装:
pip install --upgrade jupyterthemes - 应用带缩进参数的主题:
jt -t onedork -cellw 1000 -lineh 160(-cellw和-lineh虽不直接控制缩进,但影响 CodeMirror 渲染宽度与行高,间接稳定缩进视觉对齐) - 注意:
jt不改缩进逻辑,但它重载整个编辑器样式层,能绕过部分 CodeMirror 6 的快捷键冲突
真正的缩进行为由前端控制,Python 配置文件在这里只是摆设。动手前先确认你用的是 Notebook 7.x 还是 Lab,两者设置入口和语法略有差异,别混用。










