第2章 环境搭建:从零搭好你的YOLO开发台
环境搭建这事儿,说难不难,说简单也容易踩坑。我见过不少同学卡在这一步,明明代码没问题,就是跑不起来——最后发现是CUDA版本对不上。咱们这一章就把整个流程捋顺,你跟着一步步来,基本不会出问题。
本章核心目标:在Windows/Linux系统上,完成从Anaconda到YOLO依赖库的完整安装,确保能用GPU跑YOLOv8/v5。
2.1 Anaconda安装:Python环境管理器
为什么要用Anaconda?说白了,它帮你隔离Python环境。你想想看,项目A要用PyTorch 1.13,项目B要用2.0,如果没有虚拟环境,这两个版本会打架打到死机。
安装步骤:
- 去Anaconda官网下载对应系统的安装包(Python 3.9+版本)
- 安装时勾选「Add Anaconda to my PATH environment variable」
- 安装完成后,打开终端(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。
安装流程:
- 去NVIDIA官网下载CUDA Toolkit(我常用11.8,兼容性最好)
- 安装时选择自定义安装,只勾选CUDA组件
- 下载cuDNN(需要注册NVIDIA账号),解压后把bin、include、lib文件夹复制到CUDA安装目录
- 添加环境变量:
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 环境搭建知识体系总览
下面这张图帮你理清整个环境搭建的层级关系:
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检测实战了。