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

如何在Jupyter Notebook外本地运行Mesa ABM的SolaraViz可视化?

在独立Python脚本中运行Mesa SolaraViz的正确方案

问题概述

使用Mesa 3.2.0在Windows 11的Python 3.13.5环境下,无法在独立脚本中启动SolaraViz的本地Web服务器——Jupyter环境下可正常运行,但官方文档未提供独立脚本的明确指引,尝试多种方法均报错。

前置准备:确保依赖完整

首先安装Mesa的Solara可视化依赖包,避免版本不匹配:

pip install --upgrade mesa[solara]

正确实现方式

方式1:脚本内直接启动Web服务器

修改你的最小可复现脚本,将SolaraViz封装为Solara页面组件,并通过Solara的内部启动函数运行:

import mesa
from mesa import Model
from mesa.discrete_space import CellAgent, OrthogonalMooreGrid
from mesa.visualization import SolaraViz, make_space_component
import solara

class SimpleAgent(CellAgent):
    def __init__(self, model, cell):
        super().__init__(model)
        self.cell = cell
        self.wealth = 1

class SimpleModel(Model):
    def __init__(self, n=10, width=10, height=10):
        super().__init__()
        self.grid = OrthogonalMooreGrid((width, height), random=self.random)
        SimpleAgent.create_agents(self, n, self.random.choices(self.grid.all_cells.cells, k=n))

def agent_portrayal(agent):
    return {"size": 10, "color": "blue"}

model_params = {
    "n": {"type": "SliderInt", "value": 10, "label": "Agents:", "min": 1, "max": 20}
}

@solara.component
def Page():
    # 在此处创建模型和可视化组件
    SolaraViz(SimpleModel, components=[make_space_component(agent_portrayal)], model_params=model_params)

if __name__ == "__main__":
    # 启动本地服务器,默认端口8765
    solara._main.run(port=8765)

运行脚本后,访问http://localhost:8765即可看到带参数控件的交互式可视化界面。

方式2:使用Solara命令行工具

修改脚本,确保定义Page组件,然后用Solara命令启动:

  1. 保留脚本中的Page组件定义(同方式1),去掉if __name__ == "__main__"代码块。
  2. 在命令行执行:
solara run your_script_name.py

Solara会自动识别脚本中的Page组件,启动服务器并打开浏览器。

错误原因解析

  • 方法1报错:SolaraViz返回的是Solara的Element对象,本身没有run方法,需要通过Solara服务器托管。
  • 方法2报错:solara模块顶层没有run函数,该函数实际在solara._main子模块中。
  • 方法3报错:脚本未符合Solara的应用规范(需定义Page组件或导出page变量),且可能依赖未安装完整。
  • 方法4报错:solara.server模块没有run方法,正确的服务器启动方式是使用Solara内置的启动函数或uvicorn直接运行Solara的app实例。

内容的提问来源于stack exchange,提问作者foobar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:35:57