Flower 模拟引擎退出码 701 SIMULATION_MISSING_EXTRA:成因排查与在 pyproject.toml 中的标准修复方案

发布时间:2026/9/17 10:09:26

Flower 模拟引擎退出码 701 SIMULATION_MISSING_EXTRA:成因排查与在 pyproject.toml 中的标准修复方案 Flower 模拟引擎退出码 701 SIMULATION_MISSING_EXTRA成因排查与在 pyproject.toml 中的标准修复方案【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower导读本篇文章围绕 Flower 框架Friendly Federated AI Framework模拟引擎Simulation Engine的退出码 701SIMULATION_MISSING_EXTRA展开结合 退出码官方文档 与框架源码说明该错误出现的根本原因、在源码中触发的位置、以及如何通过为应用声明flwr[simulation]额外依赖来彻底修复。读完本文你将掌握模拟后端依赖的声明方式、Ray 依赖的版本与平台约束、以及运行时依赖自动安装机制对该错误的影响从而在本地开发与云端部署 Flower 应用时快速定位并解决此类启动失败问题。退出码 701 是什么退出码 701SIMULATION_MISSING_EXTRA的含义非常直接运行模拟Simulation所需的额外依赖缺失Extra dependencies required for simulation are missing。在 Flower 框架中退出码由 framework/py/flwr/supercore/exit/exit_code.py 中的ExitCode类统一集中管理。从源码注释可以看到Flower 的退出码按组件分区间编排0-99成功与优雅退出如SIGINT、SIGTERM100-199SuperLink 相关200-249ServerApp 相关250-299ClientApp 相关300-399SuperNode 相关400-499SuperExec 相关500-599Flower CLI 相关600-699通用退出码700-799模拟Simulation相关退出码800-899任务进程相关其中700是SIMULATION_EXCEPTION模拟运行中未处理异常701即SIMULATION_MISSING_EXTRA同属模拟引擎的故障类别。源码中对应定义如下# Simulation exit codes (700-799) SIMULATION_EXCEPTION 700 SIMULATION_MISSING_EXTRA 701同时EXIT_CODE_HELP字典为 701 提供了面向用户的简短帮助文本ExitCode.SIMULATION_MISSING_EXTRA: Extra dependencies required for simulation are missing. To use simulation with the Ray backend, add flwr[simulation] to the apps pyproject.toml dependencies, then install the dependencies manually unless automatic runtime dependency installation is enabled. 也就是说当你以 Ray 作为模拟后端启动 Flower 模拟时如果环境中找不到 Ray 包Flower 会立即终止进程并以 701 退出。该错误在源码中的触发位置要真正理解这个错误需要回到模拟引擎的入口实现。Flower 的模拟运行器位于 framework/py/flwr/simulation/run_simulation.py其中_run_simulation函数在启动阶段会做一次前置依赖检查# Exit early if the ray dependency is missing if backend_name ray: if importlib.util.find_spec(ray) is None: flwr_exit( codeExitCode.SIMULATION_MISSING_EXTRA, event_typeexit_event, event_details{success: False}, )这段代码的逻辑非常清晰只有当backend_name ray时才会触发检查——即默认的模拟后端。通过importlib.util.find_spec(ray)探测当前 Python 环境中是否存在ray模块。如果探测不到就调用flwr_exit()以退出码 701 终止进程并上报success: False的遥测事件。flwr_exit 的退出输出格式flwr_exit定义于 framework/py/flwr/supercore/exit/exit.py它会在终端中输出如下结构的诊断信息Exit Code: 701 Extra dependencies required for simulation are missing. To use simulation with the Ray backend, add flwr[simulation] to the apps pyproject.toml dependencies, then install the dependencies manually unless automatic runtime dependency installation is enabled. For more information, visit: 帮助页 URL从实现上看非成功退出码code 100会被判定为错误日志级别设为ERROR进程以系统退出码1结束并在末尾附加指向对应退出码文档页的链接。这也是为什么你能在日志中同时看到清晰的错误描述和文档指引。标准修复方案在 pyproject.toml 中声明 flwr[simulation]根据 701 退出码文档修复方法是在应用的pyproject.toml依赖中将flwr连同simulation额外依赖extra一起声明[project] dependencies [ flwr[simulation], ]simulation extra 实际会安装什么simulation并不是一个空的标签它在框架自身的 framework/pyproject.toml 中被定义为[project.optional-dependencies] simulation [ ray2.55.1; python_version 3.11 and python_version 3.13, ray2.55.1; python_version 3.13 and python_version 3.15 and sys_platform ! win32, ]从这份声明可以看出两个关键事实flwr[simulation]的实质就是安装ray因此把flwr[simulation]加入应用依赖后importlib.util.find_spec(ray)的检查就会通过退出码 701 不再出现。Ray 的版本与平台约束非常严格当前仓库锁定ray2.55.1并且要求 Python 版本在3.11且3.15的区间内对于 Python3.13的情况Windows 平台sys_platform win32并不支持会被条件表达式排除。因此如果应用运行在不满足条件的 Python 版本或操作系统上即使声明了flwr[simulation]也可能无法真正获得ray依赖此时需要先调整运行环境。仓库内的真实示例也印证了这一用法例如 examples/advanced-pytorch/pyproject.toml 中声明dependencies [ flwr[simulation]1.28.0, # ... ]在 examples/federated-vae/pyproject.toml、examples/fedrag/pyproject.toml、examples/custom-mods/pyproject.toml 等示例中也都采用了相同的flwr[simulation]声明模式。修复后的安装与重试修改完pyproject.toml后需要执行安装步骤pip install -e . # 或者使用 uv uv syncFlower 官方文档特别强调除非启用了自动运行时依赖安装automatic runtime dependency installation否则必须手动安装应用依赖后再重试。这一提示与框架源码中的行为是一致的。运行时依赖自动安装与 701 的关系在 Flower 的模拟应用中framework/py/flwr/simulation/app.py 负责从 FAB 安装应用并决定是否自动安装依赖。源码中有一段针对该错误的重要补充逻辑if runtime_dependency_install: # ... 自动安装应用依赖 ... if backend_name ray and importlib.util.find_spec(ray) is None: # Surface unsupported Ray/Python/platform combinations as dependency # installation failures instead of missing simulation extras. raise RuntimeDependencyInstallationError( Runtime dependency installation completed, but ray is not available. Ensure your OSPython combination supports ray. )这段代码说明当启用自动运行时依赖安装时Flower 会尝试为应用自动安装pyproject.toml中声明的依赖如果安装完成后ray依然不可用框架会将其归类为RuntimeDependencyInstallationError运行时依赖安装失败并提示检查OS 与 Python 组合是否支持 Ray——这正好对应上文提到的ray依赖声明中平台与版本条件的限制如果未启用自动安装或自动安装不可用则必须手动执行pip install -e .之类的安装命令。实战排查清单遇到退出码 701 时可以按以下顺序快速定位检查声明确认应用的pyproject.toml是否包含flwr[simulation]或带版本号的flwr[simulation]...。参考 701 退出码文档 中的标准写法。检查安装在应用目录下执行pip show ray或python -c import ray确认ray是否真实存在于当前环境中若缺失手动安装依赖后重试。检查环境兼容性确认 Python 版本处于3.11 python 3.15且 Python3.13时不在 Windows 上运行否则即使声明依赖也无法安装ray。检查后端配置如果你显式指定了非 Ray 的模拟后端701 不会触发只有backend_name ray默认值才会执行前置检查见 run_simulation.py 中的条件判断。延伸阅读退出码 700SIMULATION_EXCEPTION与 701 同属模拟引擎故障区间定义于 exit_code.py。全部退出码文档收录在 framework/docs/source/ref-exit-codes 目录并通过 framework/docs/source/ref-exit-codes-dir.rst 汇入框架参考文档的 reference.rst 索引。模拟引擎的完整入口与 FAB 加载流程参见 framework/py/flwr/simulation/app.py其 CLI 入口flwr-simulation在 framework/pyproject.toml 的[project.scripts]中注册。【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/17 10:04:26

汽车电子PCBA应力测试实战:焊点暗裂预防与关键点位全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/17 10:04:26

n8n 一行命令自托管部署完整指南

n8n 一行命令自托管部署完整指南 【免费下载链接】n8n Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400 integrations. 项目地址: https://gitcode.com/GitHub_Trending/n8/n8n …

2026/9/17 10:04:26

AI编程实战指南:从工具选择到前后端分离项目的完整路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/17 11:19:42

用Python拆解博士面试英语口语PDF:从语料到模拟的闭环训练

简介:申请攻读博士学位的考生在准备英语面试时,往往需要回答关于个人优势、实验技能、读博动机等高频提问。这份PDF指南即针对博士复试和申请考核中的常见英文提问,按个人素质、学习进展、实验能力、读博规划等模块整理中英文对照的面试问题集…

2026/9/17 11:19:42

机器学习三要素:模型、策略、算法的实操协同框架

1. 什么是机器学习方法的“三要素”?不是概念堆砌,而是实操骨架很多人刚学机器学习时,翻开教材看到“模型、策略、算法”这六个字,第一反应是:这不就是三个名词吗?背下来不就完了?我带过几十个从…

2026/9/17 11:19:42

KUKA机器人EtherNet/IP通讯参数配置与WorkVisual调试

简介:KUKA机器人Ethernet/IP通讯参数配置方法.pdf面向工业自动化工程师、机器人调试与PLC通讯集成人员,用于解决KUKA机器人经Ethernet/IP与PLC建立数据交换时的参数设置问题。资源包内仅含1个PDF文件,大小约652KB,内容围绕WorkVis…

2026/9/17 11:14:41

Win11下JDK1.8与JDK17双环境管理实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/17 0:03:13

WiFi密码安全测试:从原理到实战的字典暴力破解指南

1. 写在前面:我为什么要研究WiFi密码这件事先交代一下背景。我身边有不少朋友,家里的WiFi密码常年是"12345678"或者"88888888",问就是"好记"。直到有一次,隔壁邻居蹭网蹭到我家路由器后台都进不去&…

2026/9/17 0:03:13

redis-py服务控制与监控函数实战:从ping到slowlog的巡检指南

我用 redis-py 写了快五年的业务代码,坦白说,真正让我觉得这个客户端“像一个成熟工具箱”的,不是 get/set 那套基本操作,而是它那批专门做服务控制与状态监控的辅助函数。日常开发里,大家把redis.Redis(host..., deco…

2026/9/17 0:03:13

SpringBoot+Vue3实现中小企业设备管理系统开发实践

1. 项目概述与核心价值中小企业设备管理系统是制造业、服务业等领域的基础信息化工具。传统设备管理往往依赖Excel表格或纸质记录,存在数据孤岛、流程混乱、维护成本高等痛点。这套基于Java SpringBootVue3MyBatis的技术方案,通过前后端分离架构实现了设…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/16 22:56:09

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/16 22:56:16

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码