【笔记】在 Windows 上安装 Python-vLLM

【笔记】在 Windows 上安装 Python-vLLM
SystemPanic/vllm-windows:用于 LLM(Windows 构建和内核)的高吞吐量和内存效率推理和服务引擎

在 Windows 上安装 vLLM 有两种方式,分别是通过已发布的 wheel 包安装和从源码构建安装,具体步骤如下:



一、通过现有发布的 wheel 包安装(推荐)

发布 v0.11.0 ·SystemPanic/vllm-windows
vllm-0.11.0+cu124-cp312-cp312-win_amd64.whl
  1. 确认版本兼容性
    确保你的 Python、PyTorch 和 CUDA 版本与 wheel 包要求一致(版本信息会在发布版本中注明)。
  2. 下载 wheel 包
    从 最新发布页面 下载作者提供的版本(经测试:torch 和 CUDA 版本高于发布版,也能安装成功,但安装过程中会大量拉取安装其他依赖,可能会导致部分依赖被安装成与环境中其他库相冲突的版本,如 triton_windows、xformers 等,后期可能需要手动修复冲突)。

安装 wheel 包
打开命令行,使用 pip 安装下载的 wheel 文件:

pip install vllm-0.11.0+cu124-cp312-cp312-win_amd64.whl 

(注意替换为实际下载的 wheel 文件路径和文件名)



二、从源码构建安装(不推荐)

前置要求
  • 安装 Visual Studio 2019 或更高版本(需用于编译环境)。
  • 安装 CUDA 并配置环境变量(如 CUDA_ROOTCUDA_HOME 或 CUDA_PATH,确保系统能识别 CUDA 路径)。
步骤

安装依赖并构建

# 安装指定版本的 PyTorch(以 CUDA 12.6 为例,需与你的 CUDA 版本匹配) pip install torch==2.7.1+cu126 torchaudio==2.7.1+cu126 torchvision==0.22.1+cu126 --index-url https://download.pytorch.org/whl/cu126 # 若已安装兼容的 PyTorch,可运行以下脚本复用现有环境 python use_existing_torch.py # 安装构建依赖 pip install -r requirements/build.txt pip install -r requirements/windows.txt # 构建并安装 vLLM pip install . --no-build-isolation 

设置环境变量
必要的环境变量配置:

set DISTUTILS_USE_SDK=1 set VLLM_TARGET_DEVICE=cuda set MAX_JOBS=10 # 并行编译的 CPU 线程数,可根据实际情况调整 

(可选)如需启用 cuDNN、cuSPARSELt 等功能,需额外设置对应路径:

# 启用 cuDNN(替换为实际安装路径) set USE_CUDNN=1 set CUDNN_LIBRARY_PATH=PATH_TO_CUDNN_INSTALL_DIR\lib\CUDNN_CUDA_VERSION\x64 set CUDNN_INCLUDE_PATH=PATH_TO_CUDNN_INSTALL_DIR\include\CUDNN_CUDA_VERSION # 启用 cuSPARSELt(替换为实际安装路径) set USE_CUSPARSELT=1 set CUSPARSELT_INCLUDE_PATH=PATH_TO_CUSPARSELT_INSTALL_DIR\include set CUSPARSELT_LIBRARY_PATH=PATH_TO_CUSPARSELT_INSTALL_DIR\lib 

配置 Visual Studio 编译环境
运行 Visual Studio 的 vcvarsall.bat 以初始化 x64 编译环境(替换为你的 VS 安装路径):

VISUAL_STUDIO_INSTALL_PATH\VC\Auxiliary\Build\vcvarsall.bat x64 

打开命令行并克隆仓库

# 克隆 vllm-windows 仓库(指定分支) git clone --single-branch --branch vllm-for-windows https://github.com/SystemPanic/vllm-windows.git cd vllm-windows 

注意事项

  • 从源码构建时,Flash Attention v3 默认在 Windows 上禁用(因编译时间过长),如需强制启用,可设置环境变量 set VLLM_FORCE_FA3_WINDOWS_BUILD=1
  • 确保所有路径中的占位符(如 PATH_TO_CUDNN_INSTALL_DIR)替换为实际安装路径。
  • 若遇到编译或安装错误,建议检查依赖版本兼容性,并参考官方仓库的 issue 或文档进一步排查。

Read more

【狂热算法篇】完全背包异次元冒险:容量魔法觉醒,价值风暴来袭!

【狂热算法篇】完全背包异次元冒险:容量魔法觉醒,价值风暴来袭!

欢迎拜访:羑悻的小杀马特.-ZEEKLOG博客 本篇主题:轻轻松松拿捏完全背包问题呀!!! 制作日期:2026.03.04 隶属专栏:美妙的算法世界 目录 一·问题定义: 二·具体问题演示:  三·动态规划解答完全背包: 3.1非装满状态: 3.1.1状态定义: 3.1.2状态转移方程:   3.1.3初始化: 3.1.4返回值: 3.1.5填充dp表: 3.1.6非装满状态代码总结: 3.1.7非装满状态滚动数组降维优化:  3.2装满状态: 3.2.1状态定义: 3.2.2状态转移方程:  3.

By Ne0inhk

滑动窗口算法:从零到精通,一文搞定所有套路!+ LeetCode高频考点:滑动窗口算法详解与解题模板

“面试官让我找出字符串中最长无重复子串,我用了两层循环,O(n²)的时间复杂度,面试官摇了摇头。然后他问:‘知道滑动窗口吗?’——那一刻我才明白,我与大厂offer之间,只差一个滑动窗口的距离。” 滑动窗口(Sliding Window),这个听起来有些神秘的名字,其实是解决数组/字符串子区间问题的利器。无论是字节跳动高频出现的“最小覆盖子串”,还是腾讯常考的“长度最小的子数组”,滑动窗口都能以O(n)的时间复杂度优雅解决。今天,我就带你从零开始,彻底掌握这个让算法面试变简单的核心技巧! 1. 为什么要学滑动窗口?(解决痛点) 先看一个经典问题 LeetCode 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target。 找出该数组中满足其和 ≥ target 的长度最小的连续子数组,并返回其长度。 输入:target = 7, nums = [2,3,1,2,

By Ne0inhk
【算法通关指南:算法基础篇】二分算法: 1.A-B 数对 2.烦恼的高考志愿

【算法通关指南:算法基础篇】二分算法: 1.A-B 数对 2.烦恼的高考志愿

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人等方向学习者 ❄️个人专栏:《C语言》《【初阶】数据结构与算法》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 一、A-B 数对 * 1.1题目 * 1.2 算法原理 * 1.3代码 * 二、烦恼的高考志愿 * 2.1 题目 * 2.2 算法原理 * 2.3 代码 * 总结与每日励志 前言 本文将通过两道经典二分查找例题 ——A-B 数对与烦恼的高考志愿,带你系统掌握二分查找的核心思想与实用技巧。从排序预处理到lower_bound、upper_bound的灵活运用,再到手动实现二分与边界细节处理,由浅入深讲解算法原理与代码实现,帮助你快速攻克二分查找题型,提升编程思维与解题效率 一、

By Ne0inhk
java面试这一篇就够了(干货)

java面试这一篇就够了(干货)

前言 一、基础篇 1.1.Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 1.2.面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发,以函数为单位,一步一步完成,后期出现问题 可能会牵一发而动全身. 面向对象:以对象为最小单位是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要低。 1.3.

By Ne0inhk