跳到内容
DispatchAtlas
搜索

故障排查

症状按其在从安装到导出路径上出现的位置分组,最常见的新人故障排在最前。每个条目都 说明原因与修复命令。

🚧 安装与环境

uv sync 失败

原因: PATH 上没有 Python 3.12 或更新版本,或缺少 uv修复: 确认 Python 版本,然后重新运行:

uv sync --all-extras --group dev

若缺少 uv,请按 Astral 官方包说明安装它,打开一个新 shell,然后重新运行命令。

安装程序报告缺少前置条件

原因: 安装脚本要求 PATH 上有 gituv修复: 安装所指明的前置条件,然后重新运行同一条安装命令。当检出应位于默认用户 数据目录之外时,请在重新运行前设置 DISPATCHATLAS_HOME

更新报告了变更但不应用它们

原因: 更新检查默认为只读。 修复:DISPATCHATLAS_REF 设为发布标签或 40 字符的完整提交 SHA,然后显式应用 分离检出更新:

$env:DISPATCHATLAS_REF = "<release-tag>"
.\scripts\installer\update.ps1 -Apply
export DISPATCHATLAS_REF="<release-tag>"
scripts/installer/update.sh --apply

卸载拒绝某个目标

原因: 卸载脚本会拒绝空路径、文件系统根目录、主目录,以及不带 DispatchAtlas 工作区哨兵的目录。 修复:DISPATCHATLAS_HOME 设为已安装检出的路径,然后重新运行卸载命令。

📦 导入

ModuleNotFoundError: No module named 'dispatchatlas'

原因: 工作区未同步,或脚本在项目环境之外的 Python 解释器下运行。 修复: 从仓库根目录出发,通过 uv 同步并运行脚本,使项目环境处于激活状态:

uv sync --all-extras --group dev
uv run python your-script.py

创建求解器时出现 MissingOptionalDependencyError

原因: 可选的重量级后端(精确求解器、学习估计器)保留在 extras 之后,于运行时 探测,绝不在包导入期间被导入。该错误会说明缺失的 extra、其用途以及任何许可说明。 修复: 安装所指明的 extra(例如 exactexact-commerciallearning),或 选择后端已存在的求解器。求解器的依赖声明列在求解器系统中。

🧪 活动配置与执行

验证活动时出现 CampaignConfigError

原因: 某个配置字段未通过验证——空 id、非正的种子或预算、重复的停止协议名称,或 空的基准、求解器或目标列表。该错误携带失败字段的路径。 修复: 更正所指明的字段。活动引擎页面记录了每一个配置 块,而 experiments/configs/smoke-pilot.json 是一个完整的可用示例:

uv run dispatchatlas-lab validate --config experiments/configs/smoke-pilot.json

获取基准问题时出现 KeyError

原因: 该问题 id 不在提供方的目录中,或在期望 ProblemId 的位置传入了普通字符串。 修复: 包裹该 id(provider.get_problem(ProblemId("smoke-job-shop-0"))),并先用 provider.list_problem_ids() 列出可用的 id——参见教程

完整活动拒绝执行

原因: 处于 full 阶段的活动会以 full-campaign execution requires statistical design approval 失败关闭,直到该批准被记录在配置上。 修复: 对本地检查请在 smokepilot 阶段运行,或在启用完整执行前按 发布就绪记录统计设计批准。

恢复重新规划而非跳过已完成的运行

原因: 位于 .checkpoints/{campaign_id}.json 的检查点由配置哈希守护;任何配置 更改都会使其失效,而非静默重用。 修复: 保持配置不变以恢复,或在更改后的配置下接受一份新计划。工作区契约在 可复现活动中描述。

📤 导出、报告与站点

分析导出报告缺少检查点

原因: dispatchatlas export 命令期望一个已完成的活动目录,其中包含 checkpoint.jsonplan.jsonenvironment.json 以及结果记录。 修复:--campaign-dir 指向活动结果目录而非其父目录,或重新运行活动:

uv run dispatchatlas export `
  --campaign-dir .\experiments\results\smoke-pilot `
  --target-dir .\exports\smoke-pilot `
  --authorized-output-root .\exports `
  --tier core

--target-dir 在当前工作目录之外,请传入一个包含目标位置的显式 --authorized-output-root

门户数据验证失败

原因: 静态站点资产与门户结果导出不同步。 修复: 重新生成静态资产。该命令默认读取位于 exports/portal-results.json 的、 已提交且经披露过滤的结果导出,因此无参数即可运行:

uv run python tools/build_site_assets.py

传入 --result-source 以发布另一个经披露过滤的 portal-results.json 导出:

uv run python tools/build_site_assets.py --result-source .\path\to\portal-results.json

若命令报告 dispatchatlas site-assets: error,请检查 --result-source(或默认的 exports/portal-results.json)是否指向由分析导出路径生成的、现存的 portal-results.json 文件。

门户编修关卡失败

原因: 一个不属于公开表面的令牌到达了门户数据,因此构建失败关闭,以使已发布的 门面读起来像一个通用的调度优化工具包。 修复: 该错误会列出每个违规产物、字段路径与令牌。在发出该产物的构建器中 (位于 tools/portal_contract.py 或其源证据之下)编修违规字段,使只有公开安全的 派生证据到达门户数据,然后重新生成:

uv run python tools/build_site_assets.py

此故障不同于缺少门户导出:传入不同的 --result-source 并不能清除它——违规令牌必须 在其源头被移除。

站点构建找不到某个页面

修复: 运行站点契约测试与文档构建:

uv run pytest tests/site
npm --prefix site run build
npm --prefix site run check

某个求解器在推荐中缺失

原因: 选择基于元数据进行过滤。 修复: 检查该求解器的元数据中的目标支持、所需能力标签、可选依赖状态,以及在 求解器系统中的证据层可见性。

仍然卡住?请参见 常见问题,或在 GitHub 仓库上开启 issue。