环境准备:操作系统要求、Python版本选择、虚拟环境创建与激活
在部署 vLLM 之前,必须先搭建一个干净、可控、可复现的运行环境。vLLM 依赖 CUDA、PyTorch 和编译工具链,任何一层版本不匹配都可能导致导入失败、显存分配异常甚至非法指令错误。本节从操作系统、Python 版本和虚拟环境三个层面,梳理部署前必须完成的环境准备工作。
操作系统要求
vLLM 官方对操作系统的支持范围明确,核心约束在于 CUDA 运行库与 GCC 编译工具链的可用性。推荐使用 Linux 系操作系统,尤其是 Ubuntu 20.04 或 22.04 LTS,这两者在驱动兼容性、库依赖完整度和社区排障资料方面表现最佳。
| 操作系统 | 支持级别 | 说明 |
|---|---|---|
| Ubuntu 20.04 / 22.04 LTS | ✅ 官方推荐 | 驱动与 CUDA 兼容性最好,社区案例最多 |
| CentOS 7 / Rocky Linux 8 | ⚠️ 可用但需注意 | 需手动安装较新的 GCC(≥10)和 Python 3.10+ |
| Windows (WSL2) | ⚠️ 实验性支持 | 仅限 WSL2 的 Ubuntu 发行版,原生 Windows 不支持 |
| macOS | ❌ 不支持 | 无 NVIDIA GPU 驱动,无法运行 CUDA 加速 |
在 Linux 上,建议先确认 GPU 驱动与 CUDA 版本。执行 nvidia-smi 查看驱动版本,并确认其支持的最高 CUDA 版本。vLLM 要求 CUDA 11.8 或 12.1+,推荐直接使用 CUDA 12.1 及以上版本,以获得更好的算子兼容性。
# 检查 GPU 驱动与 CUDA 版本
nvidia-smi
# 输出示例(关键行)
# CUDA Version: 12.2
# Driver Version: 535.104.05
如果驱动版本过旧,需要先升级 NVIDIA 驱动,再安装对应版本的 CUDA toolkit。注意:驱动版本决定可用的最高 CUDA 版本,而 PyTorch 和 vLLM 的编译产物则依赖具体的 CUDA 运行时。
Python 版本选择
vLLM 对 Python 版本有明确要求:Python 3.9 至 3.12。其中 3.10 和 3.11 是当前社区使用最广泛、兼容性最稳定的版本。Python 3.12 虽然受支持,但部分依赖库(如 flash-attention)的预编译轮子可能尚未完全跟上,建议在正式部署前做一次导入测试。
选择 Python 版本时,还需考虑 PyTorch 的版本约束。vLLM 0.6.x 系列要求 PyTorch ≥ 2.1,而 PyTorch 2.1 至 2.3 对 Python 3.12 的支持存在细微差异。为避免不必要的编译问题,推荐组合如下:
- 稳定组合:Python 3.10 + PyTorch 2.1.2 + CUDA 12.1
- 性能组合:Python 3.11 + PyTorch 2.3.0 + CUDA 12.1
- 保守组合:Python 3.9 + PyTorch 2.0.1 + CUDA 11.8
检查当前 Python 版本:
python3 --version
# 期望输出:Python 3.10.x 或 3.11.x
如果系统自带的 Python 版本过低,建议通过 apt 或源码编译安装新版本,但不要覆盖系统默认的 python3 软链接,以免破坏系统工具链。
update-alternatives 或 pyenv 管理版本切换,避免直接修改 /usr/bin/python3 的指向。
虚拟环境创建与激活
虚拟环境是隔离 Python 依赖的必备手段。vLLM 的依赖项较多且版本敏感,直接安装到系统环境极易与现有包冲突。推荐使用 python3 -m venv 创建虚拟环境,这是 Python 3.3+ 内置的轻量级方案,无需额外安装。
创建虚拟环境的完整流程如下:
# 1. 创建虚拟环境目录(命名为 vllm-env)
python3 -m venv vllm-env
# 2. 激活虚拟环境
source vllm-env/bin/activate
# 3. 确认当前 Python 路径已指向虚拟环境
which python
# 输出:/path/to/vllm-env/bin/python
# 4. 升级 pip 并安装 vLLM
pip install --upgrade pip
pip install vllm
激活后,命令行提示符前会出现 (vllm-env) 前缀,表示当前 shell 已进入虚拟环境。此时所有 pip install 和 python 命令都指向虚拟环境内的解释器,不会污染系统环境。
如果需要退出虚拟环境,直接执行 deactivate 即可。在编写 systemd 服务或 Docker 启动脚本时,务必使用虚拟环境内 Python 的绝对路径,例如:
/opt/vllm-env/bin/python -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-2-7b-chat-hf
这样可以确保服务启动时加载的是虚拟环境中的依赖,而不是系统 Python 的包。
环境验证与常见误区
环境配置完成后,不要急于启动服务,先做一次快速验证。以下命令可以确认 vLLM 是否能正确导入并识别 GPU:
# 在虚拟环境中执行
python -c "import vllm; print(vllm.__version__)"
# 期望输出:0.6.3.post1 或类似版本号
python -c "import torch; print(torch.cuda.is_available())"
# 期望输出:True
如果 torch.cuda.is_available() 返回 False,说明 PyTorch 与 CUDA 的匹配有问题。常见原因包括:
- 安装了 CPU 版本的 PyTorch(
pip install torch默认可能安装 CPU 版) - CUDA 驱动版本过低,无法支持 PyTorch 所需的 CUDA 运行时
- 虚拟环境中存在多个 PyTorch 版本冲突
正确的 PyTorch 安装方式应指定 CUDA 版本,例如:
# 安装 CUDA 12.1 对应的 PyTorch
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 \
--index-url https://download.pytorch.org/whl/cu121
pip install vllm 后才发现 PyTorch 版本不对。vLLM 安装时不会自动替换已存在的 PyTorch,如果系统环境中已有 CPU 版 PyTorch,vLLM 会报出 torch.cuda.is_available() is False 的错误。务必在安装 vLLM 之前,先确认虚拟环境中的 PyTorch 是 CUDA 版本。
另一个高频问题是 GCC 版本过低。vLLM 在安装时会编译部分自定义算子,需要 GCC ≥ 10。如果编译过程中出现 internal compiler error 或 undefined reference,请先检查编译器版本:
gcc --version
# 期望输出:gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
如果 GCC 版本过低,可以通过 apt install gcc-11 g++-11 安装新版本,并使用 update-alternatives 切换默认编译器。
环境配置复盘清单
为了帮助你在部署前快速自查,以下是一份精简的环境准备清单:
- 操作系统为 Ubuntu 20.04/22.04 或兼容 Linux 发行版
- NVIDIA 驱动已安装,
nvidia-smi显示 CUDA 版本 ≥ 12.1 - Python 版本为 3.10 或 3.11(
python3 --version确认) - 已创建独立虚拟环境并激活(
source vllm-env/bin/activate) - PyTorch 为 CUDA 版本(
torch.cuda.is_available()返回 True) - GCC 版本 ≥ 10(
gcc --version确认) - vLLM 安装成功(
import vllm无报错)
完成以上步骤后,你的环境就具备了运行 vLLM 的基本条件。接下来可以着手准备模型权重文件,并启动推理服务进行验证。