Jupyter启用widgetsnbextension遇模块缺失错误及路径问题求助
问题背景
我使用Windows 10系统、Python 3.11.2版本、Jupyter 4.0.4版本,操作时遇到以下情况:
- 已在命令提示符成功执行
pip install jupyter_contrib_nbextensions - 已成功安装
widgetsnbextension-4.0.9 - 在Jupyter单元格执行
!jupyter nbextension enable --py widgetsnbextension时出现报错,推测原因是Jupyter指向了C:\Miniconda3目录,而非我直接安装的Python目录。
报错信息如下:
Traceback (most recent call last): File "C:\Miniconda3\Scripts\jupyter-nbextension-script.py", line 9, in <module> sys.exit(main()) File "C:\Miniconda3\lib\site-packages\jupyter_core\application.py", line 254, in launch_instance return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) File "C:\Miniconda3\lib\site-packages\traitlets\config\application.py", line 845, in launch_instance app.start() File "C:\Miniconda3\lib\site-packages\notebook\nbextensions.py", line 980, in start super().start() File "C:\Miniconda3\lib\site-packages\jupyter_core\application.py", line 243, in start self.subapp.start() File "C:\Miniconda3\lib\site-packages\notebook\nbextensions.py", line 888, in start self.toggle_nbextension_python(self.extra_args[0]) File "C:\Miniconda3\lib\site-packages\notebook\nbextensions.py", line 861, in toggle_nbextension_python return toggle(module, File "C:\Miniconda3\lib\site-packages\notebook\nbextensions.py", line 474, in enable_nbextension_python return _set_nbextension_state_python(True, module, user, sys_prefix, File "C:\Miniconda3\lib\site-packages\notebook\nbextensions.py", line 372, in _set_nbextension_state_python m, nbexts = _get_nbextension_metadata(module) File "C:\Miniconda3\lib\site-packages\notebook\nbextensions.py", line 1114, in _get_nbextension_metadata m = import_item(module) File "C:\Miniconda3\lib\site-packages\traitlets\utils\importstring.py", line 38, in import_item return __import__(parts[0]) ModuleNotFoundError: No module named 'widgetsnbextension'
求助问题
- 如何让Jupyter指向正确的Python目录而非Miniconda?
- 是否有其他启用
widgetsnbextension的方法?
解决方案
问题1:让Jupyter指向正确的Python目录
重新安装Jupyter到目标Python环境
打开目标Python对应的命令提示符(确保路径指向你直接安装的Python的Scripts目录,比如C:\Python311\Scripts),执行:pip install jupyter之后启动Jupyter时,使用该目录下的
jupyter-notebook.exe,而非Miniconda路径下的程序。调整系统环境变量优先级
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」的
Path列表中,找到Miniconda的Scripts目录(如C:\Miniconda3\Scripts),将其移到目标Python的Scripts目录(如C:\Python311\Scripts)下方 - 保存设置后重启命令提示符,执行
where jupyter确认路径已切换到目标Python目录
使用Python的-m参数启动Jupyter
直接在命令提示符中通过目标Python的完整路径启动Jupyter,示例命令:C:\Python311\python.exe -m notebook这种方式会强制Jupyter使用指定的Python环境及其依赖。
问题2:其他启用widgetsnbextension的方法
在目标Python环境的命令提示符直接执行启用命令
打开目标Python对应的命令提示符,直接执行:jupyter nbextension enable --py widgetsnbextension避免在Jupyter单元格中用
!执行,防止调用到Miniconda的Jupyter程序。用ipywidgets的完整配置命令自动生效
在目标Python环境的命令提示符执行:pip install ipywidgets jupyter nbextension enable --py widgetsnbextension --sys-prefix加上
--sys-prefix参数可确保配置针对当前Python环境生效。通过Jupyter Notebook的扩展管理器启用
- 确保已安装
jupyter_contrib_nbextensions,若未安装则执行pip install jupyter_contrib_nbextensions和jupyter contrib nbextension install --user - 启动Jupyter Notebook,点击顶部的「Nbextensions」标签
- 在扩展列表中找到「Widgets」相关选项,勾选即可启用。
- 确保已安装
内容的提问来源于stack exchange,提问作者Guto Schettini
相关产品推荐
相关产品推荐

