cd /root/autodl-tmp
mkdir mfo

git clone https://gitcode.com/gh_mirrors/vl/vllm.git
cd vllm

在这里插入图片描述

一、源码可编辑模式(-e / --editable)是什么?
uv pip install -e . 里的 -e = editable(可编辑 / 开发模式)。
普通安装 uv pip install .:
把代码复制到 .venv/site-packages/vllm/
你改本地源码,不会生效,必须重新 install。
可编辑安装 uv pip install -e .:
不复制代码,只在 site-packages 里建一个符号链接(快捷方式),指向你本地的 vLLM 源码目录。
你在本地改 Python 代码 → 保存就生效,不用重新安装。
非常适合:二次开发、改代码调试、研究源码。
一句话:可编辑 = 本地源码直接挂载到环境,改代码实时生效。
二、你是否还需要 clone vllm 代码?
必须 clone!必须 clone!必须 clone!
原因:
-e . 里的 . 是 “当前目录”,它要求当前目录必须是 vLLM 源码根目录(有 pyproject.toml / setup.py)。
如果你只是 pip install vllm(从 PyPI 装),没有源码,自然没法 -e .。

1 clone 代码

```bash
# 1. 必须先 clone 源码
git clone https://github.com/vllm-project/vllm.git
cd vllm

2 创建UV环境

# 2. 创建并激活 uv 虚拟环境(你之前的命令)
uv venv --python 3.12 --seed --managed-python
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows

3 下载依赖

git checkout 4765f0f189fd0cd032a79da37ba427c3ba60ec33

source .venv/bin/activate

export UV_CACHE_DIR=/root/autodl-tmp/uv-cache
export TMPDIR=/root/autodl-tmp/tmp
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
export VLLM_PRECOMPILED_WHEEL_VARIANT=cu129
export VLLM_MAIN_CUDA_VERSION=12.9

VLLM_USE_PRECOMPILED=1 uv pip install -e . --torch-backend=auto -v

4 确认环境安装成功

python -c "import sys, vllm; print(sys.executable); print(vllm.__file__)"

输出指到这里就对了:

/root/autodl-tmp/mfo/vllm/.venv/bin/python
/root/autodl-tmp/mfo/vllm/vllm/__init__.py

5 下载国内模型

然后装 debug 和模型下载工具:

uv pip install debugpy modelscope

用国内 ModelScope:

modelscope download --model Qwen/Qwen2.5-0.5B-Instruct --local_dir /root/autodl-tmp/models/Qwen2.5-0.5B-Instruct

6 跑test 文件

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project

from vllm import LLM, SamplingParams

# Sample prompts.
prompts = [
    "Hello, my name is",
    "The president of the United States is",
    "The capital of France is",
    "The future of AI is",
]
# Create a sampling params object.
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)


def main():
    # Create an LLM.
    llm = LLM(
        model="/root/autodl-tmp/models/Qwen2.5-0.5B-Instruct",
        trust_remote_code=True,
    )
    print("\nxcy:\n" + "-" * 60)
    # Gener
    # ate texts from the prompts.
    # The output is a list of RequestOutput objects
    # that contain the prompt, generated text, and other information.
    outputs = llm.generate(prompts, sampling_params)
    # Print the outputs.
    print("\nGenerated Outputs:\n" + "-" * 60)
    for output in outputs:
        prompt = output.prompt
        generated_text = output.outputs[0].text
        print(f"Prompt:    {prompt!r}")
        print(f"Output:    {generated_text!r}")
        print("-" * 60)


if __name__ == "__main__":
    main()

7 执行结果

(vllm) (base) root@autodl-container-11hz88zfkm-31078a3e:~/autodl-tmp/mfo/vllm# python hello.py

在这里插入图片描述

8 pycharm 连接调试

Logo

免费领 100 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐