vLLM 依赖管理:从 20 个文件到 1 个 requirements 的正确选择路径
vLLM 依赖管理从 20 个文件到 1 个 requirements 的正确选择路径【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm凌晨两点新 A100 机器上一条pip install -r requirements/cuda.txt跑起了服务。一开 JSON 结构化输出却报No module named xgrammar同事机器上同版本却一切正常。排查半天才发现那台机器是旧镜像依赖早就齐了。vLLM 的 requirements 目录里躺着 20 个文件看起来是一堆版本号选错一个就是版本地狱。读完这篇你能在 30 秒内判断自己的环境该装哪个文件以及每个版本号为什么这么钉。全景requirements 目录如何分层requirements 目录按场景而非包名拆分基础层全平台共用每个硬件适配文件一行继承基础层后补上自己的 torch 与 kernel 栈功能扩展层再按开发、测试场景叠加。基础层common.txt 钉了什么、为什么这一层解决模型加载、API 服务、结构化输出缺什么就少什么的问题。50 来个公共包钉法分三种只给下限如pydantic 2.12.0再加上限如fastapi 0.133.0, 0.137.0以及条件依赖根据运行平台自动切换只在列出的架构上安装。前两种管版本上下限第三种管装不装。依赖约束为什么这么钉fastapi 0.133.0, 0.137.00.133 起支持 Starlette 1.0上限规避路由树变更破坏 handler 覆盖starlette 1.0.11.0.1 修复 Host 头注入漏洞protobuf 5.29.6 加一串 ! 排除6.30 至 6.33 区间多个版本有兼容问题逐一跳过xgrammar 0.2.1, 1.0.0限架构只在 x86_64/aarch64 等可编译架构安装条件依赖跳过其余平台safetensors 0.6.20.6.0 起才支持 MXFP4/MXFP6 dtypetransformers 5.10.4模型结构与权重加载的下限新模型依赖新版能力xgrammar 0.2.1, 1.0.0; platform_machine x86_64 or platform_machine aarch64 or ...分号后面就是条件依赖的标记pip 命中架构才装否则静默跳过。所以非 x86 机器上缺结构化输出组件不是错误是设计如此。protobuf 那一行是全文件最长的排除列表原因写在注释里多个中间版本有 gRPC 兼容问题只能逐个跳过。硬件适配层每种硅片选自己的 torch这一层解决同一份 Python 代码、五种底层栈的问题。每个文件第一行都是-r common.txt继承基础层再钉本硬件的 torch 和 kernel 栈。torch 是全文件最大的变量NVIDIA 环境严格钉死 2.13.0因为 flashinfer、CUTLASS DSL 等 kernel 包都是对着这个版本编译测试的浮动升级会悄悄换掉 ABI。文件硬件关键钉版钉版原因cuda.txtNVIDIA GPUtorch2.13.0flashinfer-python0.6.17kernel 栈均按 2.13.0 编译验证cpu.txtCPU onlytorch2.13.0cpucpu 后缀防止误装 CUDA 运行库rocm.txtAMD GPUgRPC 两包同钉 1.78.0两个 gRPC 库版本必须互相一致tpu.txtTPUtpu-inference0.27.0 rayTPU 运行时是成套方案xpu.txtIntel GPUtriton3.7.2xpuXPU 专属 Triton 构建不在 PyPI⚠️ torch 的卫星包torchvision、torchaudio、torchcodec必须和 torch 一起升级cuda.txt 的注释原话就是 must be updated alongside torch。torch2.13.0 torchvision0.28.0 # must be updated alongside torchcpu.txt 把 torch 拆成两行x86_64、aarch64、s390x 走 cpu 构建macOS 和 PowerPC 用普通 2.13.0。这是基础层条件依赖思想的复用——只是把标记从装不装挪到了装哪个版本。功能扩展层按场景才装这一层解决别逼所有人背全套工具的问题。dev.txt 本身只有 2 行引用 lint.txtpre-commit 风格检查和 test/cuda.txt文件里还有句注释别直接往我身上加依赖改我引用的那 2 个文件。test/cuda.txt 不是手写约束文件是锁定文件lock file由 uv 生成每个包标注精确版本和被谁引入作用是让本地与 CI 的测试环境逐字节一致。kv_connectors.txt 面向分布式 KV 缓存场景依赖 lmcache、nixl、mooncakeROCm 另有一份 kv_connectors_rocm.txt。docs.txt 同样是 uv 锁与主环境隔离专门构建文档站。test/ 目录下还有按硬件拆分的测试变体与 nightly PyTorch 验证文件用于提前验证下一代 PyTorch 的兼容性。文件作用备注dev.txt开发工具链等于 lint test/cuda.txt 两份引用test/cuda.txt测试环境锁定uv 生成版本与来源全标注kv_connectors.txtKV 缓存连接器lmcache nixl mooncakedocs.txt文档站锁定独立环境不影响推理环境按硬件选安装命令对号入座复制对应命令即可。生产环境如果是 NVIDIA GPU 生产环境 →pip install -r requirements/cuda.txt文件内已声明 flashinfer 的 wheel 源pip 会自动解析不用手动加 index如果是 AMD ROCm 环境 →pip install -r requirements/rocm.txttorch 版本跟随 ROCm 官方流程文件内不硬钉如果无 GPU只做功能验证 →pip install -r requirements/cpu.txtx86_64 自动选 cpu 构建如果是 TPU 集群 →pip install -r requirements/tpu.txtray 与 tpu-inference 成套引入如果需要 KV 缓存卸载或分布式缓存 → 追加pip install -r requirements/kv_connectors.txtROCm 用 kv_connectors_rocm.txt开发环境如果要贡献源码 →pip install -r requirements/dev.txt一次性拿到 pre-commit 风格检查与完整测试锁即完整开发环境测试环境如果要跑全量测试或复现 CI →pip install -r requirements/test/cuda.txt直接装锁文件环境与 CI 完全一致、可复现三个高频依赖坑flashinfer 单包安装失败 症状Could not find a version that satisfies the requirement flashinfer-python0.6.17 根因该包已不在 PyPI只在官方 wheel 源 ✅ 解法pip install -r requirements/cuda.txt 验证pip show flashinfer-pythontorch 卫星包版本错位 症状导入时报 undefined symbol 或版本不匹配告警 根因卫星包被手动装到了与 torch 不同的版本 ✅ 解法pip install torch2.13.0 torchvision0.28.0 torchaudio2.11.0 验证python -c import torch, torchvision; print(torch.__version__)改了本地代码行为却不变 症状修改 vllm 源码后运行行为完全没变化 根因环境装的是发布 wheel 而非本地源码 ✅ 解法pip uninstall vllm pip install -e . 验证python -c import vllm; print(vllm.__file__)确认指向源码目录依赖管理的下一步uv 化的锁定方案已经落到文档与测试docs.txt、test/cuda.txt 都是 uv 生成的锁未来很可能一条uv sync直接搭好任意硬件的完整环境。建议每次升级 vLLM 前 diff 一次 requirements/ 目录重点盯 torch 的钉版变化——那是依赖升级里最大的风险源。 本文随 vLLM 主分支 requirements/ 目录更新节奏维护升级前过一遍钉版对照表。【免费下载链接】vllmA high-throughput and memory-efficient inference and serving engine for LLMs项目地址: https://gitcode.com/GitHub_Trending/vl/vllm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

scrcpy 快速上手指南:免费投屏 + 远程控制 Android 设备

scrcpy 快速上手指南:免费投屏 + 远程控制 Android 设备

scrcpy 快速上手指南:免费投屏 远程控制 Android 设备 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy scrcpy 是一款免费开源的 Android 投屏与控制工具:通过 USB …

2026/8/29 22:40:50 阅读更多 →
scrcpy:如何3分钟在电脑上投屏并控制安卓手机——新手完整指南

scrcpy:如何3分钟在电脑上投屏并控制安卓手机——新手完整指南

scrcpy:如何3分钟在电脑上投屏并控制安卓手机——新手完整指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 开会时手机消息不断弹窗打断思路,或者想把手游画面低…

2026/8/29 22:39:49 阅读更多 →
超声波测距实战:从HC-SR04到STM32滤波与避障应用

超声波测距实战:从HC-SR04到STM32滤波与避障应用

1. 项目概述:从“听”到“测”,超声波测距的工程实践 超声波测距,听起来像是个实验室里的经典实验,但它的身影其实无处不在。从你倒车时雷达发出的“滴滴”声,到工厂里机械臂精准抓取物料的距离判断,再到扫…

2026/8/29 22:39:49 阅读更多 →

最新新闻

用友2017校招前端笔试题解析:JavaScript核心考点与浏览器原理

用友2017校招前端笔试题解析:JavaScript核心考点与浏览器原理

如果经历过那几年的校招季,大概率会对这类题目有印象:前端笔试不是让你默写 API,而是把 JavaScript 的语言特性、浏览器渲染机制、网络通信原理混在一张卷子里,考的东西看起来都是基础,但每一个选项都在挖坑。“用友 2…

2026/8/29 23:22:26 阅读更多 →
唯品会数据开发岗面试复盘:Hive、Spark、Kafka高频考点与数仓实战

唯品会数据开发岗面试复盘:Hive、Spark、Kafka高频考点与数仓实战

1. 项目背后的岗位真相:唯品会数据开发岗面试到底在选什么人2019年秋招那阵子,我前后投了十几家互联网公司的数据开发岗,唯品会这条线算是我准备得最认真的一家。一方面是因为电商场景下的数据开发天然比纯平台型公司更有业务感,另…

2026/8/29 23:22:26 阅读更多 →
免费商用级ARM IDE搭建实战:从Keil迁移到GCC+CMake

免费商用级ARM IDE搭建实战:从Keil迁移到GCC+CMake

在 ARM 开发社区里,选 IDE 这件事真的能吵三天三夜。有人坚持 Keil,有人只信 IAR,还有人从入行开始就用命令行加 Makefile。我属于中间派:这些年一边被商业工具的高效率惯坏,一边又不想让 License 费用限制项目自由。所…

2026/8/29 23:22:26 阅读更多 →
ST数字电源实战:从选型、控制环到量产调试全流程解析

ST数字电源实战:从选型、控制环到量产调试全流程解析

做电源这一行的朋友,应该都注意到一个趋势:数字电源从“高大上”变成“标配”了。以前只在通信基站、服务器电源里见到的数字控制,现在连几十瓦的适配器、快充头都在往这个方向走。而ST(意法半导体)在数字电源这块&…

2026/8/29 23:22:26 阅读更多 →
因子分析:从数据中提取潜在结构的原理、流程与Python实战

因子分析:从数据中提取潜在结构的原理、流程与Python实战

1. 项目概述:从数据迷雾中寻找隐藏的“因子”如果你处理过一堆问卷数据,或者面对过几十个高度相关的经济指标,你肯定有过这样的困惑:这些变量背后是不是有更少的、更本质的东西在驱动?比如,一份关于消费者满…

2026/8/29 23:22:26 阅读更多 →
贝壳找房2024秋招前端笔试完整复盘与考点解析

贝壳找房2024秋招前端笔试完整复盘与考点解析

每年的秋招都是一场信息战,尤其是大厂的笔试,不提前摸清套路很容易白给。我参加了贝壳找房2024年秋招前端工程师的第一批笔试,今天把整场笔试的完整复盘整理出来,从题型分布到考点拆解,再到编程题的逐步优化思路&#…

2026/8/29 23:21:26 阅读更多 →

日新闻

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:00:24 阅读更多 →
【JavaScript】内存管理-垃圾回收机制-内存泄露

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:00:24 阅读更多 →
Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/29 0:00:24 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/29 18:08:35 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 23:05:07 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/28 19:47:53 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/29 4:34:53 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/28 17:43:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/29 2:05:18 阅读更多 →