You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装Jupyter Notebook的nbextensions时遇ModuleNotFoundError错误求助

问题描述

这已经是我第1000次尝试为Jupyter Notebook安装nbextensions了,但每次都会触发错误:ModuleNotFoundError: No module named ‘notebook.base’。

我严格按照说明在Windows 11的CMD中执行以下操作:

  1. 运行pip install notebook安装Notebook;
  2. 运行pip install jupyter_contrib_nbextensions下载相关包;
  3. 执行jupyter contrib nbextension install --user尝试安装扩展,就在这一步触发了错误:from notebook.base.handlers import APIHandler, IPythonHandler ModuleNotFoundError: No module named ‘notebook.base’。

我已尝试以下解决方法但均无效:

  • 执行pip install --upgrade --force-reinstall notebook重新安装Notebook;
  • 卸载并重新安装nbextensions:pip install jupyter_contrib_nbextensions;
  • 创建虚拟环境(venv)并在其中尝试安装扩展;
  • 执行pip cache purge清理包缓存;
  • 重新安装Python,但结果依旧。

我的环境是:

  • Python 3.11.4(最新版),安装时已将路径添加到环境变量,且创建了PYTHONPATH变量,路径为C:\Users\Nikita\AppData\Local\Programs\Python\Python311。

恳请帮忙解决该问题,或推荐一款可实现类似autopep8代码格式化功能的Jupyter Notebook替代扩展。

错误日志

C:\Users\Никита>jupyter contrib nbextension install --user
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Scripts\jupyter-contrib.EXE\__main__.py", line 7, in <module>
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\jupyter_core\application.py", line 285, in launch_instance
    return super().launch_instance(argv=argv, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\traitlets\config\application.py", line 1041, in launch_instance
    app = cls.instance(**kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\traitlets\config\configurable.py", line 551, in instance
    inst = cls(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\jupyter_contrib_core\application.py", line 27, in __init__
    self._refresh_subcommands()
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\jupyter_contrib_core\application.py", line 43, in _refresh_subcommands
    get_subcommands_dict = entrypoint.load()
                           ^^^^^^^^^^^^^^^^^
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\pkg_resources\__init__.py", line 2471, in load
    return self.resolve()
           ^^^^^^^^^^^^^^
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\pkg_resources\__init__.py", line 2477, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\jupyter_contrib_nbextensions\__init__.py", line 5, in <module>
    import jupyter_nbextensions_configurator
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python311\Lib\site-packages\jupyter_nbextensions_configurator\__init__.py", line 18, in <module>
    from notebook.base.handlers import APIHandler, IPythonHandler
ModuleNotFoundError: No module named 'notebook.base'
解决方案

一、修复nbextensions安装错误

这个错误的核心原因是jupyter_contrib_nbextensions与新版Notebook(>=7.x)不兼容——新版Notebook重构了代码结构,移除了notebook.base模块,而旧版nbextensions仍在调用这个已被删除的模块。

解决步骤如下:

  1. 卸载当前的Notebook,安装兼容的旧版本:
    pip uninstall -y notebook
    pip install notebook==6.5.6
    
  2. 重新安装并配置nbextensions:
    pip install jupyter_contrib_nbextensions
    jupyter contrib nbextension install --user
    jupyter nbextensions_configurator enable --user
    
  3. 启动Jupyter Notebook,此时应该能正常看到nbextensions的配置界面。

如果之后需要使用新版Notebook,建议等nbextensions官方更新兼容版本后再升级。

二、替代的代码格式化扩展推荐

如果不想降级Notebook,推荐以下两款实现autopep8格式化功能的工具:

  1. Black Formatter
    • 安装命令:pip install black jupyter-black
    • 使用方式:安装后重启Notebook,在单元格菜单中选择「Black Format Cell」或「Black Format All Cells」即可完成格式化,它默认遵循PEP8规范,且支持一键配置快捷键。
  2. autopep8原生插件
    • 安装命令:pip install autopep8 jupyter-autopep8
    • 使用方式:重启Notebook后,在单元格右键菜单中选择「autopep8 format」即可直接格式化代码,完全匹配你需要的autopep8功能。

内容的提问来源于stack exchange,提问作者Nikita Shilyaev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:53:23