Prhub

#5209 [misc] fix: add missing __init__.py files to package directories

原始 PR 作者 guillemgt 合并时间 2026-05-01 01:14 文件变更 10 提交数 6 评论 15 代码增减 +124 / -0

执行摘要

为 10 个包目录添加缺失的 __init__.py 文件

PR 描述指出目录中包含 Python 模块但未配置为包,导致导入失败。Issue 评论中 @SamitHuang 提到该修复解决了 verl-omni 升级时的 ModuleNotFoundError:No module named 'verl.experimental.reward_loop.router'。@ntenenz 也表示有 workaround 希望移除。

建议合并。此 PR 解决了一个实际的导入错误,结构简单,review 充分。值得关注的是,在添加 init 文件时注意版权归属的准确性,以及保持与目录中其他文件的一致性。

讨论亮点

主要讨论围绕版权归属:vermouth1992 询问 trtllm_rollout 目录是否应由 Nvidia 许可,以及 VLA 目录是否由 Meituan 许可。guillemgt 确认 VLA 并非 Meituan 并修正,trtllm_rollout 版权与其他文件保持一致。此外,vermouth1992 要求合并主分支以适应文件夹结构变化,guillemgt 随后调整文件列表。

实现拆解

  1. 识别缺失 __init__.py 的目录(experimental、utils、tools、trainer 等)。
  2. 添加包含 Apache 2.0 许可证头部的空 __init__.py 文件。
  3. 根据 review 更正部分文件的版权归属(如移除 VLA 的 Meituan 版权)。
  4. 更新 .gitignore 添加 workers/env/ 排除项。
  5. 移除不含 Python 文件的目录中误加的 __init__.py(最终 commit)。
文件 模块 状态 重要度
verl/experimental/reward_loop/router/__init__.py 奖励调度 added 5.97
verl/experimental/fully_async_policy/__init__.py 全异步策略 added 5.44
verl/utils/sglang/__init__.py SGLang 工具 added 5.47
verl/workers/rollout/trtllm_rollout/__init__.py TRTLLM 推演 added 3.0
verl/experimental/one_step_off_policy/__init__.py 单步离策略 added 5.52

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

目录版权归属确认 other

vermouth1992 询问 trtllm_rollout 是否应由 Nvidia 许可,以及 VLA 是否由 Meituan 许可。

结论:guillemgt 确认 VLA 不属于 Meituan 并修正版权;trtllm_rollout 版权与其他文件保持一致。 · 已解决

风险与影响

风险极低,因为这些 __init__.py 文件不含运行时逻辑。唯一风险是版权归属错误可能导致法律问题,但已在 review 中纠正。添加 init 文件可能使原本通过其他方式导入的隐式包变为显式,但无实质影响。

对用户:修复了这些模块的导入错误,用户不再需要 workaround。对系统:包结构更规范,IDE 和工具能正确识别包。对团队:无需额外维护,无兼容性问题。影响范围:所有使用 affected 模块的用户(如 fully_async_policy、reward_loop、SGLang 工具等)。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论