Kedro启动Jupyter Notebook报错:无法导入SingleKernelSpecManager
问题描述
- 运行
kedro jupyter notebook持续报错,错误信息:[C 08:50:49.028 NotebookApp] Bad config encountered during initialization: The 'kernel_spec_manager_class' trait of <notebook.notebookapp.NotebookApp object at 0x7fdef3120a90> instance must be a type, but 'kedro.framework.cli.jupyter.SingleKernelSpecManager' could not be imported
- 已尝试操作:
- 创建/删除
jupyter_notebook_config.json,无效果 - 安装ipython并执行
python3 -m ipykernel install --user --name=myvenv成功添加kernelspec
- 创建/删除
kedro jupyter、kedro jupyter lab、kedro ipython均可正常运行,仅Notebook启动失败
解决方案
1. 检查版本兼容性
运行pip show kedro notebook查看版本号,确认两者是否匹配:
- 若使用Kedro 0.18.x及以上版本,
SingleKernelSpecManager的路径已变更为kedro.framework.jupyter.SingleKernelSpecManager,旧配置会导致导入失败
2. 修复Jupyter配置文件
找到~/.jupyter/目录下的jupyter_notebook_config.py:
- 搜索
c.NotebookApp.kernel_spec_manager_class配置项 - 将其修改为正确路径:
c.NotebookApp.kernel_spec_manager_class = "kedro.framework.jupyter.SingleKernelSpecManager" - 若找不到该配置项,直接添加上述内容即可
3. 重新初始化Kedro的Jupyter配置
在Kedro项目根目录执行:
kedro jupyter init
该命令会重新生成适配当前Kedro版本的Jupyter配置,覆盖旧错误配置
4. 验证虚拟环境依赖一致性
激活虚拟环境后,运行pip list确认kedro、notebook、ipykernel均已安装且版本无冲突;若存在冲突,可卸载后重装:
pip uninstall -y kedro notebook ipykernel pip install kedro notebook ipykernel
5. 替代启动方案
若上述方法无效,可直接启动Notebook后手动加载Kedro上下文:
- 激活虚拟环境,运行
jupyter notebook - 在Notebook首个单元格执行:
执行后即可正常使用Kedro功能from kedro.framework.startup import bootstrap_project bootstrap_project(".")
内容的提问来源于stack exchange,提问作者MDLA
相关产品推荐
相关产品推荐

