Prhub

#34770 [Build] Add Python 3.14 to supported version list.

原始 PR 作者 nascheme 合并时间 2026-04-25 01:24 文件变更 14 提交数 6 评论 13 代码增减 +20 / -19

执行摘要

支持 Python 3.14 构建

允许 vLLM 在 Python 3.14 上从源码构建(参见 PR body)。需要先合并 numba PR #34764。注意 Python 3.13 仍是推荐版本,且 Ray 暂不支持 3.14。

建议合并,因为这是支持新 Python 版本的必要步骤,且已通过基础测试验证。但需在 Python 3.14 稳定发布后完善 CI 覆盖和分布式支持。

讨论亮点
  • gemini-code-assist[bot] 指出 pyproject.toml 分类器未同步更新(已解决)和 Ray 条件标记可能破坏分布式执行。
  • rgommers 引用之前讨论(#34096)说明 Ray 已非必需,建议不添加条件标记。
  • nascheme 确认已在后续提交中完全移除 Ray 行,问题解决。

实现拆解

  1. 更新 pyproject.toml:添加 "Programming Language :: Python :: 3.14" 分类器,将 requires-python">=3.10,<3.14" 改为 ">=3.10,<3.15",以允许 Python 3.14 安装。

  2. 升级 numba 依赖版本:在多个 requirements 文件和 Dockerfile 中,将 numba0.61.2 升级到 0.65.0,以支持 Python 3.14。

  3. 升级 outlines-core 依赖版本:在 lock 文件中,将 outlines-core0.2.11 升级到 0.2.14,确保兼容性。

  4. 调整 Ray 依赖:根据讨论,由于 Ray 尚不支持 Python 3.14,决定在 requirements/cuda.txt 中移除 Ray 依赖(之前已由其他 PR 移除),避免条件标记带来的复杂性。

  5. 同步上下游 lock 文件:更新 requirements/cuda.txtrequirements/rocm.txt 等锁文件,确保各环境版本一致。

文件 模块 状态 重要度
pyproject.toml 项目配置 modified 3.97
requirements/test/cuda.in 测试依赖 modified 3.82
requirements/test/rocm.in 测试依赖 modified 3.82
docker/Dockerfile.nightly_torch Docker 构建 modified 2.78
requirements/test/cuda.txt 锁文件 modified 2.47

关键源码片段

pyproject.toml configuration

核心项目配置,声明 Python 版本支持范围

[project]
name = "vllm"
# ...
classifiers = [
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14", # 新增:声明已支持 Python 3.14
    "Intended Audience :: Developers",
    # ...
]
requires-python = ">=3.10,<3.15" # 将上限从 3.14 调整为 3.15,允许 Python 3.14 安装

评论区精华

pyproject.toml 中缺少 Python 3.14 分类器 正确性

gemini-code-assist[bot] 指出 classifiers 应同步更新以保持元数据一致性

结论:作者已添加该分类器,问题解决 · 已解决

Ray 依赖对 Python 3.14 的限制 设计

gemini-code-assist[bot] 认为条件标记会破坏分布式执行;rgommers 引用之前讨论说明 Ray 不是必须的;nascheme 回应已移除 Ray 行

结论:最终移除了 Ray 依赖,无需条件标记 · 已解决

风险与影响

主要风险包括:

1) Python 3.14 上部分依赖(如 torch、flashinfer)可能缺少预编译包,需用户自行编译;
2) Ray 不可用导致分布式测试跳过,暂无法覆盖分布式场景;
3) 部分测试(如分布式相关)未通过,需后续修复。

对用户:允许在 Python 3.14 上进行实验性构建,但官方仍推荐 3.13;对开发者:需关注后续兼容性更新;对系统:无直接影响。

依赖版本锁定 Ray 分布式不可用 测试套件部分失败

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论