Jupyter Lab中使用ipyleaflet报错:'Map'对象无'on_displayed'属性如何解决?
修复ipyleaflet中'Map'对象无'on_displayed'属性的AttributeError错误
这个错误的核心原因是ipyleaflet与ipywidgets版本不兼容:on_displayed是旧版ipywidgets的回调方法,新版ipywidgets已移除该接口,但你安装的ipyleaflet版本仍在尝试调用它,从而触发报错。
修复方案
方案1:降级ipyleaflet到兼容版本
安装与当前ipywidgets匹配的ipyleaflet稳定版(比如0.17.x系列),执行以下命令:
pip install ipyleaflet==0.17.2
安装完成后,重启Jupyter Lab再运行代码即可。
方案2:同步更新ipyleaflet和ipywidgets到最新稳定版
如果想使用新版功能,直接更新两者到最新兼容版本:
pip install --upgrade ipyleaflet ipywidgets
更新后同样需要重启Jupyter Lab,确保依赖生效。
验证代码
修复后,补充必要的导入语句,你的原代码可以正常运行:
# Set study area using ipyleaflet from ipyleaflet import Map, DrawControl m = Map(center=(14, -90), zoom=6) draw_control = DrawControl(polyline={}, circlemarker={}, polygon={}) draw_control.rectangle = { "shapeOptions": { "fillColor": "#fca45d", "color": "#fca45d", "fillOpacity": 0.2 } } m.add_control(draw_control) m
内容的提问来源于stack exchange,提问作者SRTM
相关产品推荐
相关产品推荐

