首页 > Technology > 正文

本地部署大模型 CUDA 驱动版本不匹配、Python 依赖冲突怎么办?

fenij 2026-08-12 49 Technology

本地跑大模型时,nvidia-smi 能看到卡,torch 却报 CUDA not available;或者 Ollama/LM Studio 刚启动就崩,控制台里全是 ImportError。这类问题 70% 不是硬件坏了,而是驱动-CUDA-Python 依赖链里某个版本没对上。

先确认 GPU 基础状态

三连命令打一套:

nvidia-smi
nvcc --version
python -c "import torch; print(torch.cuda.is_available(), torch.version.cuda)"

如果 nvidia-smi 正常但 torch.cuda.is_available() 返回 False,基本是 PyTorch 与 CUDA 版本不匹配。

CUDA 版本不匹配怎么修

不要同时装三四个 CUDA。建议只保留一个主版本,用 conda 或官方 runfile 重装:

pip uninstall torch torchvision torchaudio
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

装完后再次执行上面的 torch 检查,确认 version.cuda 和 nvcc 一致。

Python 依赖冲突:一项目一环境

最忌讳所有项目共用一个 base Python。每个模型项目独立建环境:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip freeze > locked.txt

如果冲突严重,用 pip install package==version --force-reinstall 指定版本,不要让它自动升级。

模型权重格式问题

LLaMA、Qwen、DeepSeek 的量化版格式多样:GGUF、GPTQ、AWQ、Safetensors。框架和格式必须对应:

  • llama.cpp / Ollama → GGUF
  • Transformers → Safetensors / 原始 bin
  • AutoGPTQ → GPTQ

如果提示词表缺失,说明模型文件没下全,重新拉取完整仓库。

七步排查流程

1
验驱动
2
查CUDA
3
torch
4
venv
5
依赖
6
权重
7
参数
错误 根因 处理
CUDA out of memory 显存不够/并发太高 降低量化精度、限制 n_gpu_layers
torch.cuda.is_available() False PyTorch CUDA 版本不对 按 nvidia-smi 的 CUDA 重装 torch
ImportError / 版本冲突 依赖打架 新建 venv、固定 requirements
🖥️
1 venv
每个项目独立环境
🧩
GGUF
Ollama 通用格式

常见问题

Q:nvidia-smi 显示的 CUDA 版本和 nvcc 不一致,该听谁的?
以能跑起来的为准。通常 PyTorch 安装时要对齐 nvidia-smi 右上角的 CUDA Version。

Q:已经建了新 venv,为什么还是报错?
检查 vscode/jupyter 用的解释器是不是新 venv,而不是系统 Python。

Q:显存够,加载模型却很慢?
low_cpu_mem_usage=True 或换 .gguf 量化版,加载速度会快很多。

你在 fenij.com 部署本地模型时还踩过哪些坑?欢迎留言补充,我把它整理进正文。

延伸:两种典型的死法

第一种,驱动太新、CUDA 太旧。nvidia-smi 顶部写着 CUDA Version 12.x,但你 pip 装的是 cu118 版本的 torch,两者不匹配,torch 就加载不出 GPU。用 python -c "import torch;print(torch.version.cuda)" 看 torch 认到的 CUDA 版本,和 nvidia-smi 对不上就要重装。第二种,conda 环境和系统 Python 混用:两个地方各装了一套库,import 时加载错版本。先用 which pythonwhich pip 确认是不是同一个环境,再决定重装。

场景修复
torch 报 CUDA not available重装对应 cu 版本的 torch
Ollama 启动即崩看日志是否 GLIBC / ImportError
两个环境冲突用 conda 隔离,统一 pip 来源

实操速查清单

装环境前先把自己环境理清楚,能省掉一大半坑:① 只留一个系统主 CUDA,别同时装三四个;② 用 conda 新建干净环境再装 torch,避免和系统 Python 打架;③ 装完立刻跑 python -c "import torch;print(torch.cuda.is_available())" 验证;④ 如果还 False,去 PyTorch 官网复制和你 CUDA 版本对应的那条安装命令,别凭记忆写版本号。这样一步到位,后面跑模型少踩很多暗坑。

常见问题

问:nvidia-smi 正常,但 torch.cuda.is_available() 返回 False?
答:PyTorch 与系统 CUDA 版本不对,卸掉 torch 重装和驱动匹配的 cu 版本(如 cu121 / cu118)。

问:Ollama 刚启动就崩?
答:多半是系统库缺失(GLIBC 过低)或显存不足,看控制台报错,必要时换官方预编译包或降模型。

问:多个 CUDA 版本怎么共存?
答:系统只留一个主 CUDA,PyTorch 版本跟着它走;需要多版本时用 conda 环境隔离,别全局乱装。

问:怎么看系统到底装了几个 CUDA?
答:用 which nvcc 看当前生效版本,再 ls /usr/local/ | grep cuda 看装了哪几个;但 torch 实际认的版本以 torch.version.cuda 为准,别只凭 nvidia-smi 顶栏的显示来判断。先把这套搞清楚,后面装环境能少走很多弯路。

相关完整手册

系统化的排查与配置思路,建议顺手收藏这几篇完整手册: