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

发布时间:2026/11/7 23:22:37

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/11/6 16:35:14

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

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

2026/10/24 7:40:07

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/10/26 20:00:46

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

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

2026/11/7 23:20:25

有电工证能去当电工吗 通过率揭秘帮你少走弯路

有电工证能去当电工吗 通过率揭秘帮你少走弯路 你是不是也觉得, 学历不高怕报不上名 ,想着自己干电工这行,但又怕证书拿不到?其实,电工证不仅不是高门槛,反而是你进入电工行业的“通行证”。但关键问题来了—— 有电工证能去当电工吗?…

2026/11/7 23:20:25

阜阳低压维修电工证报名门槛真高吗?真实经历告诉你

阜阳低压维修电工证报名门槛真高吗?真实经历告诉你 学历不高怕报不上名,这事儿我懂。我自己就是个初中毕业的电焊工,当年想考低压电工证,差点就被拦在门外。后来才知道,只要准备充分,流程走对,学历真的不是绊脚石。今天就从我的真实经历出发,聊聊阜阳…

2026/11/7 23:20:25

电工证快速拿证成都证全国通用吗

成都电工证快速拿证真实经历:学历不高怕报不上名?别担心,全流程揭秘 你是不是也遇到过这种情况:学历不高,又想从事电工相关工作,一听说要考电工证,心里就开始打鼓,担心自己因为学历问题报不了名?其实,很多人在报考电工证时都有类似的顾虑,而我的亲…

2026/11/7 23:20:25

电工证报考莆田多少钱?别再被中介坑了,正规渠道全在这儿

电工证报考莆田多少钱?别再被中介坑了,正规渠道全在这儿 你是不是正愁不知道去哪里报考电工证?怕被那些打着“包过”“速拿证”旗号的中介坑了钱包?尤其在莆田地区,很多电工从业者都遇到过类似问题,不是报名费用不明,就是考试内容不清,甚至有的连报名…

2026/11/7 23:15:25

工地太忙根本没时间复习考试,电工作业指导书劳保在哪考全攻略

工地太忙根本没时间复习考试,电工作业指导书劳保在哪考全攻略 工地上的节奏快得让人喘不过气,尤其是像电工作业这种对安全和技术要求都很高的岗位,很多一线工人连抽空复习的时间都没有。你是不是也遇到过这种情况:手头项目压得喘不过气,偏偏又到了电工证…

2026/11/7 14:54:47

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

2026/11/7 0:03:08

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。特别是在郑州这样的城市,很多施工企业负责人和一线作业人员在报考电工证和钳工证时都面临着同样的困惑。到底该考哪个证?哪个更适合自己?哪个证书…

2026/11/7 0:03:08

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱?

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱? 之前考的证在外省能不能转过来?这个问题我遇到太多了,今天就拿广西电工证办理流程来具体说说,别再走弯路了。广西电工证的报考、复审、继续教育这些环节,如果你不了解,真的会吃大亏,尤其对于从…

2026/11/7 0:03:08

电气电工证都有哪些保姆级教程

电气电工证都有哪些保姆级教程 你是不是正愁不知道去哪报名,怕被中介坑?别急,这篇保姆级教程专为河南初次报考人员准备,帮你搞清楚 电气电工证都有哪些 ,以及如何避开那些坑。 电气电工证都有哪些?别被五花八门的证书搞懵了…

2026/11/7 14:54:47

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

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

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

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