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

Emulsion框架运行报错求助:无法导入bokeh.layouts的widgetbox

解决Emulsion框架运行时Bokeh widgetbox导入错误

问题根源

你遇到的ImportError是因为Bokeh版本与Emulsion框架不兼容:Bokeh在2.0及以后的版本中,已经将widgetbox从bokeh.layouts模块移除,但Emulsion的plot.py文件仍在尝试导入这个已被废弃的API。

解决方案

方案1:降级Bokeh到兼容版本

这是最直接的解决方法,安装Emulsion支持的旧版Bokeh即可:

  1. 卸载当前的Bokeh版本:
    pip uninstall -y bokeh
    
  2. 安装保留widgetbox的Bokeh版本(推荐1.4.0,经测试兼容):
    pip install bokeh==1.4.0
    
  3. 验证安装成功:
    pip show bokeh
    
    输出的Version字段应为1.4.0。

方案2:手动修改Emulsion代码(无需降级)

如果不想降低Bokeh版本,可以修改Emulsion的源码适配新版Bokeh:

  1. 找到报错的文件:c:\users\dell\appdata\local\programs\python\python39\lib\site-packages\emulsion\tools\plot.py
  2. 打开文件,定位到第70行,将导入语句修改为:
    from bokeh.layouts import gridplot, column
    from bokeh.models.widgets import WidgetBox as widgetbox
    
  3. 保存文件后重新运行测试模拟即可。

额外提示:新版Bokeh中column()函数已经可以完全替代widgetbox()的功能,你也可以直接把代码中所有调用widgetbox()的地方替换成column(),效果一致。

内容的提问来源于stack exchange,提问作者Ivan Joshua Castor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:33:09