Flower (flwr) 开发版本安装指南:uv、pip 与本地构建的完整实践

发布时间:2026/9/17 21:29:06
Flower (flwr) 开发版本安装指南:uv、pip 与本地构建的完整实践
Flower (flwr) 开发版本安装指南uv、pip 与本地构建的完整实践【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower本文基于 Flower 官方文档《Install development versions》整理系统讲解在 Flower 项目中安装开发版本预发布版、主分支最新代码、本地构建产物的全部标准做法。读完后你将掌握用uv从 PyPI 安装预发布版、以可编辑模式安装本地源码、从本地 wheel 文件安装用pip在 Colab 等环境中从 PyPI 或 Git 仓库直接安装以及flwr包的 extras如simulation、nightly 版本机制和安装后的验证方法。为什么需要安装开发版本稳定版flwr发布在 PyPI 上但以下场景必须使用开发版本尝鲜预发布pre-release特性尚未进入稳定通道的功能会以1.0.0a0这类预发布版本号出现在 PyPI跟踪主分支最新代码main分支或某个特性分支上的改动往往先于任何正式发版复现与调试用本地源码editable 安装或本地构建的 wheel 精确复现某个提交的行为使用 nightly 构建Flower 的 CI 会把近期有提交的仓库自动发布为flwr-nightly包方便用户消费准最新代码。nightly 机制可以从仓库源码得到印证framework/dev/publish-nightly.sh 中CI 检查最近 24 小时是否有提交若有则把包名改写为flwr-nightly、版本号追加日期后缀形如1.2.3.dev20260514再通过uv builduv publish发布到 PyPI。而运行时的版本探测代码 framework/py/flwr/supercore/version.py 会依次查找flwr和flwr-nightly两个包的元数据两者都找不到时返回unknown——这说明官方在包元数据层面就同时支持稳定版与 nightly 两种安装形态。前置条件与环境要求在安装前需要确认以下事实均来自 framework/pyproject.toml项目要求依据包名flwrPyPI 上的发行名非flower[project] name flwrPython 版本3.11,4.0官方针对 3.11/3.12/3.13 做测试与类型检查requires-python与classifiers字段构建后端uv-build源码位于framework/py/flwr[build-system]与[tool.uv.build-backend]仓库布局仓库是 monorepoflwr包的pyproject.toml位于framework/子目录仓库根目录下另有baselines/、examples/、datasets/、hub/等最后一点直接影响后文 Git 安装命令中#subdirectoryframework的写法pip 从仓库根目录检出代码后必须进入framework/子目录才能找到打包所需的pyproject.toml。使用 uv 安装官方推荐uv 是 Flower 项目自身采用并依赖的包管理器flwr的基础依赖中就包含uv0.11.15,0.12.0官方文档将其作为安装开发版本的首选方式。uv add会把依赖写入当前项目的pyproject.toml并自动同步虚拟环境共三种安装源。1. 从 PyPI 安装预发布版预发布版本号如1.0.0a0默认不会被解析器选中因此必须显式加上--prereleaseallow# 不带 extras uv add --prereleaseallow flwr1.0.0a0 # 带 extrassimulation uv add --prereleaseallow flwr[simulation]1.0.0a0注意示例中的1.0.0a0是文档给出的示意版本号实际使用时应替换为 PyPI 上真实存在的预发布版本号当前仓库 framework/pyproject.toml 中的开发版本为1.38.0。2. 从本地源码以可编辑模式安装当你克隆了 Flower 源码、希望在改动flwr代码后立即生效时使用--editable指向仓库中的framework/目录示例路径../../是相对于你执行命令的项目目录而言的# 不带 extras uv add --editable ../../ # 带 extrassimulation uv add --editable ../../ --extra simulation可编辑安装意味着flwr包直接指向本地源码树修改 framework/py/flwr 下的 Python 文件无需重新安装即可生效适合本地联调。3. 从本地 wheel 文件安装先用项目自带的构建脚本产出 wheel构建脚本见 framework/uv.md 中的 Build 小节产物输出到framework/dist/目录再把 wheel 作为依赖加入项目# 不带 extras uv add ../../dist/flwr-1.8.0-py3-none-any.whl # 带 extrassimulation uv add ../../dist/flwr-1.8.0-py3-none-any.whl --extra simulation这里flwr-1.8.0-py3-none-any.whl同样是文档示例文件名实际应以dist/目录中真实生成的 wheel 名为准版本号随仓库版本变化。与可编辑安装相比wheel 安装得到的是一个固化快照适合验证构建产物本身是否能正确安装、分发。更深入的 uv 依赖管理细节可参考 uv 官方文档的 Dependencies 章节文档中给出的指引此处不再重复列出外链。使用 pip 安装Colab 环境推荐在 Colab 等已经预装 pip 的环境里官方推荐使用 pip 而非 uv。pip 同样支持从 PyPI 和 Git 仓库两条路径安装开发版本。1. 从 PyPI 安装最新版预发布-U表示升级--pre允许解析器选中预发布版本# 不带 extras pip install -U --pre flwr # 带 extrassimulation pip install -U --pre flwr[simulation]2. 从 Git 仓库直接安装pip 支持从 Git 仓库安装 Python 包。由于仓库是 monorepo命令末尾的#subdirectoryframework必不可少它告诉 pip 打包根目录位于framework/。安装默认分支main的代码# 不带 extras pip install flwrgithttps://github.com/flwrlabs/flower.git#subdirectoryframework # 带 extrassimulation pip install flwr[simulation]githttps://github.com/flwrlabs/flower.git#subdirectoryframework安装指定分支以branch-name为例的代码在 URL 与#subdirectory之间插入分支名# 不带 extras pip install flwrgithttps://github.com/flwrlabs/flower.gitbranch-name#subdirectoryframework # 带 extrassimulation pip install flwr[simulation]githttps://github.com/flwrlabs/flower.gitbranch-name#subdirectoryframework带 extras 的命令需要整体加引号否则 shell 会把[simulation]解释为通配符导致命令失败——这是文档中特意对带 extras 形式加引号的原因。理解simulationextra文档示例为何选它文档示例统一使用flwr[simulation]作为带 extras 的写法这对应flwr包定义的可选依赖组。从 framework/pyproject.toml 可以看到flwr共定义了三个 extrasextra附加依赖用途simulationray2.55.1按 Python 版本/平台带条件标记3.11–3.12 全平台3.13–3.15 仅限非 Windows启用单机多进程/分布式仿真引擎agentbrowser-use[core]、trafilaturaAgent 场景相关能力dpdp-accounting差分隐私会计工具选择simulation演示有其源码层面的合理性入口点[project.scripts]framework/pyproject.toml为安装后注册的可执行命令其中flwr-simulation指向flwr.simulation.app:flwr_simulation即仿真引擎入口 framework/py/flwr/simulation/app.py不带 extras 时依赖组不会被安装该入口运行时会缺少ray等依赖惰性导入framework/py/flwr/init.py 通过_LAZY_EXPORTS机制把simulation做成惰性属性——只有显式访问flwr.simulation时才真正导入flwr.simulation模块。这让未安装simulationextra 的用户导入flwr本体不会报ModuleNotFoundError但一旦使用仿真功能就必须安装对应 extras。基础安装无 extras已包含grpcio、protobuf、fastapi、uvicorn、SQLAlchemy等核心运行时依赖见dependencies字段安装后即可使用flwr、flwr-serverapp、flwr-clientapp等 CLI 入口。Nightly 版本介于预发布与稳定版之间除了手动安装main分支用户还可以消费 CI 自动产出的flwr-nightly发布逻辑见 framework/dev/publish-nightly.sh仅当最近 24 小时仓库有提交时才会构建发布包名为flwr-nightly版本号为当前版本 .dev 日期如1.38.0.dev20260916客户端的版本探测兼容两种包名framework/py/flwr/supercore/version.py 先查flwr再查flwr-nightly因此 nightly 安装后flwr.__version__能正确显示 nightly 版本号安装 nightly 的通用方式与安装预发布版一致uv 加--prereleaseallow并写死flwr-nightlydev版本号或 pip 使用--pre本文不再展开命令变体。验证安装是否成功安装完成后建议做两层验证版本与包身份import flwr print(flwr.__version__) # 例如 1.38.0 或 1.38.0.dev20260916该值来自 framework/py/flwr/init.py 中的__version__ _package_version最终由importlib.metadata读取已安装包元数据得到CLI 入口可用性确认安装注册的可执行命令可被解析如flwr --help、flwr-simulation --help后者要求已安装simulationextra。此外若你是在 Flower 仓库内部做贡献者式开发而不是外部用户安装官方给出的环境复现方式与本文略有不同——直接在仓库内执行锁定的全量同步即可见 framework/uv.mduv sync --python3.11.14 --locked --all-extras --all-groups--locked强制从uv.lock安装锁文件过期即失败--all-extras --all-groups则把simulation等 extras 与dev依赖组全部装上得到与 CI 一致的完整开发环境。小结场景推荐命令关键要点使用 uv、要 PyPI 预发布版uv add --prereleaseallow flwr预发布版本必须--prereleaseallow带 extras 写作flwr[simulation]版本使用 uv、要本地源码editableuv add --editable ../../路径相对执行目录指向framework/打包根使用 uv、要本地 wheeluv add ../../dist/flwr-版本-py3-none-any.whl先构建出 wheel 再引用Colab / pip、要 PyPI 预发布pip install -U --pre flwr带 extras 写作flwr[simulation]且加引号Colab / pip、要 Git 分支代码pip install flwrgit仓库地址分支#subdirectoryframework#subdirectoryframework不可省略以上命令均继承自官方文档 framework/docs/source/contributor-how-to-install-development-versions.rst并对照 framework/pyproject.toml、framework/uv.md 与 framework/dev/publish-nightly.sh 的当前仓库实现进行了扩充。使用时请以 PyPI 上真实存在的版本号和dist/中真实生成的 wheel 文件名替换文档中的示例值并确保 Python 版本满足3.11,4.0。【免费下载链接】flowerFlower: A Friendly Federated AI Framework项目地址: https://gitcode.com/GitHub_Trending/flo/flower创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考