是否可以在JupyterLab启动器中隐藏指定的内核?
配置不生效的核心原因
- 语法错误:你当前填写的白名单配置本身存在Python语法错误,
set('ir', 'javascript', 'python3')的写法不符合set构造规则,正确的多元素set初始化写法应该是{'元素1', '元素2'}或者set(['元素1', '元素2']),语法错误会导致配置直接不加载。 - 配置文件不匹配:JupyterLab 3.x及以上版本默认使用
jupyter_server作为后端服务,你生成的jupyter_notebook_config.py是传统notebook服务的配置文件,不会被jupyter_server读取,自然不生效。 - 配置项废弃:新版本Jupyter已经将
KernelSpecManager.whitelist配置项废弃,替换为KernelSpecManager.allowed_kernelspecs,旧配置项在新版本中不会生效。
两种实现方案
方案1:全局白名单控制(适合固定保留内核数量少的场景)
- 如果你用的是新版本JupyterLab,先执行命令生成jupyter_server配置文件:
jupyter server --generate-config - 打开生成的
jupyter_server_config.py文件,添加如下配置:
c.KernelSpecManager.allowed_kernelspecs = {'ir', 'javascript', 'python3'}
- 重启JupyterLab即可生效,只有白名单内的内核会展示在启动器列表中。
方案2:给指定内核添加隐藏标记(更适合你的使用场景)
不需要全局修改配置,单独给需要隐藏的专用内核做标记即可,隐藏后不影响Voila指定调用该内核:
- 先执行命令查看所有内核的存储路径:
jupyter kernelspec list - 进入你需要隐藏的内核对应的文件夹,打开文件夹内的
kernel.json文件 - 在JSON的顶层配置中添加一行
"hidden": true,示例:
{ "argv": ["python", "-m", "ipykernel_launcher", "-f", "{connection_file}"], "display_name": "你要隐藏的内核名", "language": "python", "hidden": true }
- 保存文件后重启JupyterLab,对应内核就不会出现在启动器列表中。
内容的提问来源于stack exchange,提问作者Pierrick Rambaud
相关产品推荐
相关产品推荐

