执行摘要
- 一句话:支持 Python 3.14 构建
- 推荐动作:建议合并,因为这是支持新 Python 版本的必要步骤,且已通过基础测试验证。但需在 Python 3.14 稳定发布后完善 CI 覆盖和分布式支持。
功能与动机
允许 vLLM 在 Python 3.14 上从源码构建(参见 PR body)。需要先合并 numba PR #34764。注意 Python 3.13 仍是推荐版本,且 Ray 暂不支持 3.14。
实现拆解
-
更新 pyproject.toml:添加 "Programming Language :: Python :: 3.14" 分类器,将 requires-python 从 ">=3.10,<3.14" 改为 ">=3.10,<3.15",以允许 Python 3.14 安装。
-
升级 numba 依赖版本:在多个 requirements 文件和 Dockerfile 中,将 numba 从 0.61.2 升级到 0.65.0,以支持 Python 3.14。
-
升级 outlines-core 依赖版本:在 lock 文件中,将 outlines-core 从 0.2.11 升级到 0.2.14,确保兼容性。
-
调整 Ray 依赖:根据讨论,由于 Ray 尚不支持 Python 3.14,决定在 requirements/cuda.txt 中移除 Ray 依赖(之前已由其他 PR 移除),避免条件标记带来的复杂性。
-
同步上下游 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 版本支持范围
[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 安装
评论区精华
风险与影响
- 风险:主要风险包括:
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
参与讨论