# PR #34770 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[Build] Add Python 3.14 to supported version list.
- 合并时间：2026-04-25 01:24
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/34770

---

# 执行摘要

- 一句话：支持 Python 3.14 构建
- 推荐动作：建议合并，因为这是支持新 Python 版本的必要步骤，且已通过基础测试验证。但需在 Python 3.14 稳定发布后完善 CI 覆盖和分布式支持。

# 功能与动机

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

# 实现拆解

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 中，将 `numba` 从 `0.61.2` 升级到 `0.65.0`，以支持 Python 3.14。

3. **升级 `outlines-core` 依赖版本**：在 lock 文件中，将 `outlines-core` 从 `0.2.11` 升级到 `0.2.14`，确保兼容性。

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

5. **同步上下游 lock 文件**：更新 `requirements/cuda.txt`、`requirements/rocm.txt` 等锁文件，确保各环境版本一致。

关键文件：
- `pyproject.toml`（模块 项目配置；类别 config；类型 configuration）: 核心项目配置，声明 Python 版本支持范围
- `requirements/test/cuda.in`（模块 测试依赖；类别 test；类型 test-coverage）: 更新 numba 版本以兼容 Python 3.14
- `requirements/test/rocm.in`（模块 测试依赖；类别 test；类型 test-coverage）: ROCM 测试依赖中 numba 版本升级
- `docker/Dockerfile.nightly_torch`（模块 Docker 构建；类别 infra；类型 infrastructure）: Docker 构建镜像中 numba 版本更新
- `requirements/test/cuda.txt`（模块 锁文件；类别 docs；类型 documentation）: 锁文件同步更新 numba 和 outlines-core 版本

关键符号：未识别

## 关键源码片段

### `pyproject.toml`

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

```toml
[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 安装

```

# 评论区精华

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

- pyproject.toml 中缺少 Python 3.14 分类器 (correctness): 作者已添加该分类器，问题解决
- Ray 依赖对 Python 3.14 的限制 (design): 最终移除了 Ray 依赖，无需条件标记

# 风险与影响

- 风险：主要风险包括：
 1) Python 3.14 上部分依赖（如 torch、flashinfer）可能缺少预编译包，需用户自行编译；
 2) Ray 不可用导致分布式测试跳过，暂无法覆盖分布式场景；
 3) 部分测试（如分布式相关）未通过，需后续修复。
 - 影响：对用户：允许在 Python 3.14 上进行实验性构建，但官方仍推荐 3.13；对开发者：需关注后续兼容性更新；对系统：无直接影响。
 - 风险标记：依赖版本锁定 , Ray 分布式不可用 , 测试套件部分失败

# 关联脉络

- PR #34764 [Build] Add Python 3.14 support for numba: 本 PR 前置依赖，numba 版本升级以支持 Python 3.14