运行Agents.jl谢林模型示例报错无可用Makie后端如何解决?
报错原因
该报错的核心原因是Makie后端的导入顺序错误,以及可能存在的依赖版本不兼容、后端构建失败问题,具体如下:
- 你当前的代码先导入了
InteractiveDynamics,再导入CairoMakie,而Makie的渲染机制要求必须先加载后端(CairoMakie/GLMakie/WGLMakie任意一个),再加载基于Makie的上层绘图库,InteractiveDynamics才会正确识别到可用的后端。 - 若调整顺序后仍报错,可能是CairoMakie构建过程中依赖缺失,或是相关包版本不兼容。
解决步骤
- 调整导入顺序,将CairoMakie的导入放在InteractiveDynamics之前,修改后的代码如下:
using Agents using CairoMakie # InteractiveDynamics要放在Makie后端导入之后 using InteractiveDynamics groupColor(a) = a.group == 1 ? :blue : :green groupMarker(a) = a.group == 1 ? :circle : :rect fig, _ = abm_plot(model, ac = groupColor, am = groupMarker, as = 10)
- 调整顺序后仍报错的话,进入Julia的Pkg模式(按
]进入),执行build CairoMakie,构建完成后重启Julia会话再运行代码。 - 若还是报错,在Pkg模式下执行
update Agents InteractiveDynamics CairoMakie将所有相关包升级到最新兼容版本,重启后再运行即可。
内容的提问来源于stack exchange,提问作者imantha
相关产品推荐
相关产品推荐

