JupyterLab启动时如何加载notebook.json或custom.js并自动应用自定义设置覆盖高级配置?
解决JupyterLab启动自动加载自定义配置的问题
首先要明确:你之前尝试的notebook.json、custom.js、config.js都是**经典Jupyter Notebook(旧版)**的配置文件,而你使用的是JupyterLab 3.x——它有一套完全独立的配置系统,所以这些文件不会被JupyterLab读取,这就是配置不生效的核心原因。
下面针对JupyterLab 3.0.14给出两种可行的解决方案:
方法1:通过JupyterLab可视化界面配置(最简单)
这是最直观的方式,不需要手动编辑文件:
- 打开JupyterLab,点击左侧边栏的Settings菜单,选择Advanced Settings Editor
- 在顶部的下拉菜单中选择对应的配置项:
- 选
Notebook可以设置代码单元格、Markdown单元格的CodeMirror编辑器属性 - 选
Code Editor可以配置全局的代码编辑器行为
- 选
- 根据你的需求修改参数:
- 比如设置
tabSize为4,lineNumbers为true,autoClosingBrackets为true,wordWrapColumn为95等
- 比如设置
- 修改完成后,点击右上角的Save Settings按钮,JupyterLab会自动将配置保存到用户目录的配置文件中,下次启动时会自动加载这些设置。
方法2:手动编辑JupyterLab的用户配置文件
如果你习惯手动编辑文件,可以按以下步骤操作:
- 先确认JupyterLab的用户配置目录存在,不存在的话创建:
mkdir -p ~/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/ - 创建并编辑
tracker.jupyterlab-settings文件,填入对应你需求的配置:{ "codeCellConfig": { "tabSize": 4, "insertSpaces": true, "readOnly": false, "autoClosingBrackets": true, "matchBrackets": true, "lineNumbers": true, "lineWrapping": true, "wordWrapColumn": 95 }, "markdownCellConfig": { "autoClosingBrackets": true, "lineNumbers": true, "lineWrapping": false } } - 保存文件后,重启JupyterLab,配置就会自动生效。
额外:关于代码折叠扩展的适配
你之前在notebook.json中启用的codefolding/main是经典Notebook的nbextension,在JupyterLab中无法直接使用。需要安装对应的JupyterLab扩展:
pip install jupyterlab-codefolding jupyter lab build
(JupyterLab 3.x支持直接通过pip安装扩展,无需额外安装Node.js)
重启JupyterLab后,代码折叠功能和你的自定义编辑器配置就都能正常工作了。
内容的提问来源于stack exchange,提问作者Moheji
相关产品推荐
相关产品推荐

