第2章 环境搭建:从零搭好你的YOLO开发台

环境搭建这事儿,说难不难,说简单也容易踩坑。我见过不少同学卡在这一步,明明代码没问题,就是跑不起来——最后发现是CUDA版本对不上。咱们这一章就把整个流程捋顺,你跟着一步步来,基本不会出问题。

本章核心目标:在Windows/Linux系统上,完成从Anaconda到YOLO依赖库的完整安装,确保能用GPU跑YOLOv8/v5。

2.1 Anaconda安装:Python环境管理器

为什么要用Anaconda?说白了,它帮你隔离Python环境。你想想看,项目A要用PyTorch 1.13,项目B要用2.0,如果没有虚拟环境,这两个版本会打架打到死机。

安装步骤:

  1. 去Anaconda官网下载对应系统的安装包(Python 3.9+版本)
  2. 安装时勾选「Add Anaconda to my PATH environment variable」
  3. 安装完成后,打开终端(Windows用Anaconda Prompt)验证:
conda --version
# 输出示例:conda 23.7.4

我的习惯:安装完第一件事就是换国内镜像源,不然下载包能等到你怀疑人生。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

2.2 创建Python虚拟环境

我个人习惯给每个项目建一个独立环境。YOLO项目我通常用Python 3.9或3.10,这两个版本对PyTorch的兼容性最好。

conda create -n yolo_env python=3.9
conda activate yolo_env

激活后,终端前面会出现 (yolo_env) 字样,说明你已经在虚拟环境里了。嗯,这里要注意:每次打开新终端都要重新激活环境。

命令 作用
conda create -n 环境名 python=版本 创建虚拟环境
conda activate 环境名 激活环境
conda deactivate 退出环境
conda env list 查看所有环境

2.3 CUDA与cuDNN安装:GPU加速的关键

YOLO训练为什么快?靠的就是GPU并行计算。CUDA是NVIDIA的并行计算平台,cuDNN是深度神经网络的加速库。两者缺一不可。

先确认你的显卡:

nvidia-smi
# 查看CUDA Version那一行,比如 CUDA Version: 12.1

我建议你安装的CUDA版本不要高于驱动支持的版本。比如驱动支持12.1,你就装11.8或12.1,别装12.2。

安装流程:

  1. 去NVIDIA官网下载CUDA Toolkit(我常用11.8,兼容性最好)
  2. 安装时选择自定义安装,只勾选CUDA组件
  3. 下载cuDNN(需要注册NVIDIA账号),解压后把bin、include、lib文件夹复制到CUDA安装目录
  4. 添加环境变量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin

我曾经踩过的坑:cuDNN版本和CUDA版本不匹配,训练时直接报错「cudnn_status_not_initialized」。后来我养成了习惯:每次安装前都去NVIDIA官网查兼容性表。

验证安装:

nvcc --version
# 输出CUDA版本信息

# 运行cuDNN示例(在CUDA安装目录下)
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\extras\demo_suite
.\deviceQuery.exe

2.4 PyTorch安装:深度学习框架

PyTorch是YOLO的底层框架。安装时最关键的是选对CUDA版本。

安装命令(以CUDA 11.8为例):

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

如果你用CUDA 12.1,把 cu118 换成 cu121 就行。

验证PyTorch能否调用GPU:

python -c "import torch; print(torch.cuda.is_available())"
# 输出 True 说明GPU可用

如果输出 False,别慌。先检查CUDA版本是否匹配,再确认PyTorch安装的是GPU版本。我遇到过有人装了CPU版的PyTorch,折腾半天才发现。

2.5 YOLO依赖库安装

YOLOv8的依赖库安装非常简单,Ultralytics团队已经帮你打包好了。

pip install ultralytics

这条命令会自动安装:

  • torch(如果没装的话)
  • opencv-python(图像处理)
  • numpy(数值计算)
  • matplotlib(可视化)
  • pillow(图像IO)
  • tqdm(进度条)

如果你用YOLOv5,需要手动安装:

pip install -r requirements.txt
# requirements.txt 在YOLOv5项目根目录下

验证安装:

python -c "from ultralytics import YOLO; print('YOLO ready')"

2.6 环境搭建知识体系总览

下面这张图帮你理清整个环境搭建的层级关系:

YOLO环境搭建知识体系 操作系统 (Windows/Linux) Anaconda / Python 3.9 虚拟环境 (yolo_env) CUDA 11.8 + cuDNN PyTorch (GPU版) Ultralytics / YOLO依赖 关键说明: • CUDA和cuDNN是GPU加速的基石,必须与显卡驱动版本匹配 • PyTorch版本必须与CUDA版本对应,否则无法调用GPU • 虚拟环境隔离不同项目的依赖,避免版本冲突 • Ultralytics一键安装所有YOLO依赖,省去手动配置的麻烦

2.7 常见问题与避坑指南

问题1:pip install ultralytics 报错

多半是网络问题。试试换国内镜像:

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

问题2:torch.cuda.is_available() 返回 False

我曾经被这个问题卡了一下午。后来发现是PyTorch装了CPU版。解决办法:

# 先卸载
pip uninstall torch torchvision torchaudio
# 重新安装GPU版
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

问题3:nvidia-smi 显示CUDA版本,但nvcc --version报错

这说明驱动支持CUDA,但CUDA Toolkit没装好。重新安装CUDA Toolkit,并检查环境变量。

2.8 环境验证清单

全部安装完成后,跑一遍这个脚本,确认所有组件都正常工作:

import torch
import cv2
import numpy as np
from ultralytics import YOLO

print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA可用: {torch.cuda.is_available()}")
print(f"OpenCV版本: {cv2.__version__}")
print(f"NumPy版本: {np.__version__}")

if torch.cuda.is_available():
    print(f"GPU型号: {torch.cuda.get_device_name(0)}")
    print(f"CUDA版本: {torch.version.cuda}")

# 测试YOLO加载
model = YOLO('yolov8n.pt')
print("YOLO模型加载成功!")

如果所有输出都正常,恭喜你,环境搭建完成!接下来就可以开始真正的YOLO检测实战了。