模块找不到错误:安装 nbextensions 时未找到 'notebook.base' 模块。

19
第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重新安装笔记本电脑-没有结果;
  • 删除并重新安装nbextensions pip install jupyter_contrib_nbextensions-无济于事;
  • 创建了一个虚拟环境并尝试在其中安装扩展-不行;
  • 使用命令pip cache purge清除软件包缓存-这也没有起作用。
  • 最终再次重新安装Python-结果始终如一。

我有最新的Python 3.11.4。在安装Python时,路径已写入环境变量,我还创建了一个PYTHONPATH变量,路径为:C:\Users\Nikita\AppData\Local\Programs\Python\Python311。

请帮忙或建议另一个适用于Jupyter Notebook的扩展,可以像autopep8一样格式化代码。

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'

非常感谢大家!我非常感激你们的帮助! - undefined
5个回答

23
你所使用的Jupyter Notebook版本不适合安装扩展,从我所看到的来看,它已经不兼容了。因此,你需要使用一个较低的版本。以下版本对我来说是可行的:
pip install --upgrade notebook==6.4.12

1
笔记本7刚刚发布,我将我的笔记本升级到了7+。那么你的意思是说笔记本7根本没有支持扩展的方式吗? - Sayan Dey
2
至少根据我所见,目前版本的Jupyter Notebook似乎不再支持nbextensions。这是因为他们推出了Jupyter Lab,可以在其中获取扩展功能。 - Angelo Miranda
谢谢,有帮助。将迁移到实验室。 - Sayan Dey
1
我还不得不卸载并重新安装traitlets==5.9.0。 - undefined
对我没用 :-(PyPDF2.errors.DeprecationError: PdfFileWriter已被弃用,并在PyPDF2 3.0.0中移除。请改用PdfWriter。 - undefined

6
在Angelo上面说的基础上补充一点:
重新安装笔记本后: ``` pip install --upgrade notebook==6.4.12 ```
可能会出现关于traitlets的错误,请在这里也更改版本:
pip uninstall traitlets
pip install traitlets==5.9.0

2

补充安吉洛的回答:

请注意,您还可以创建一个新的Python环境来安装较低版本的软件。python -m venv <choose-a-name>。然后,您可以激活您的环境并使用pip安装所需的内容,而不会影响全局Python库。请参阅https://docs.python.org/3/tutorial/venv.html了解更多信息。


1
@Ajinkya Nawarkar的附加答案也解决了这个问题:
TypeError: warn()缺少一个必需的关键字参数:'stacklevel'
请按照以下步骤操作:
pip uninstall traitlets
pip install traitlets==5.9.0

根据目前的写法,你的回答不够清晰。请编辑以添加更多细节,帮助他人理解这如何回答所提出的问题。你可以在帮助中心找到关于如何撰写好答案的更多信息。 - undefined

0
我在Anaconda Powershell提示符中解决了这个问题:使用以下命令: $ conda install -c conda-forge jupyter_contrib_nbextensions $ conda install -c "conda-forge/label/cf201901" jupyter_contrib_nbextensions $ conda install -c "conda-forge/label/cf202003" jupyter_contrib_nbextensions 查看:https://anaconda.org/conda-forge/jupyter_contrib_nbextensions

你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接