JupyterLab中ipywidgets无法显示,报JavaScript版本兼容错误
解决JupyterLab中ipywidgets版本不兼容导致的JavaScript加载错误
问题核心
JupyterHub环境下,将ipywidgets从8.0.2降级到7.x版本(因voila兼容要求)后,JupyterLab运行测试代码时出现JavaScript错误:无法从@jupyter-widgets/controls模块加载VBoxModel类,所需版本^1.5.0未注册,当前已注册版本为2.0.0。
原因分析
ipywidgets的Python包与前端JupyterLab扩展版本强绑定:
- ipywidgets 8.x 对应前端扩展@jupyter-widgets/controls 2.x
- ipywidgets 7.x 对应前端扩展@jupyter-widgets/controls 1.x
降级Python包后,前端扩展未同步降级,导致版本不匹配,触发加载错误。
解决步骤
彻底清理旧依赖与扩展
pip uninstall -y ipywidgets widgetsnbextension jupyterlab_widgets jupyter lab clean安装指定兼容版本的ipywidgets及对应前端扩展
以7.7.2版本为例(兼容voila且稳定):pip install ipywidgets==7.7.2 jupyter labextension install @jupyter-widgets/jupyterlab-manager@3.0.5重建JupyterLab并重启服务
jupyter lab build完成后重启JupyterHub或JupyterLab服务。
验证方法
- 运行测试代码,检查浏览器控制台是否仍有JS错误
- 查看已安装包版本:
pip list | grep ipywidgets - 查看前端扩展状态:
jupyter labextension list,确认@jupyter-widgets/jupyterlab-manager版本为3.x
用户提供的相关信息
测试代码
import ipywidgets as widgets from IPython.display import display vbox = widgets.VBox([widgets.Label("测试VBox")]) display(vbox)
错误日志
无法从@jupyter-widgets/controls模块加载VBoxModel类,所需版本^1.5.0未注册,当前已注册版本为2.0.0。
已安装包列表(降级后)
ipywidgets 7.7.2 widgetsnbextension 3.6.5 jupyterlab_widgets 1.1.7
内容的提问来源于stack exchange,提问作者Jonas
相关产品推荐
相关产品推荐

