环境搭建与工具链:Python环境配置、PyTorch安装、CUDA与cuDNN设置、常用库安装
说实话,做障碍物检测这几年,我见过太多同学在环境搭建这一步就卡住了。明明代码写对了,结果跑不起来——多半是环境没配好。今天我就把这一整套流程掰开揉碎了讲给你听。
核心要点:环境搭建不是一次性的苦力活,而是你后续调试、排查问题的基本功。配好了,后面省心十倍。
2.1 Python环境配置
我个人习惯用 Anaconda 来管理Python环境。为什么?因为项目多了你就知道,每个项目依赖的包版本可能完全不同。你想想看,一个项目要PyTorch 1.10,另一个要2.0,硬装在一起迟早出问题。
安装步骤其实很简单:
- 去Anaconda官网下载对应系统的安装包(Windows/Linux/Mac)
- 一路默认安装,但记得勾选「Add Anaconda to my PATH」
- 打开终端或Anaconda Prompt,验证安装:
conda --version
然后创建一个专门用于障碍物检测的环境:
conda create -n obstacle_detection python=3.9
conda activate obstacle_detection
这里我建议用Python 3.9,别问为什么。3.10以上有些老库兼容性不太好,3.8以下又太旧。3.9是个稳妥的选择,我在好几个项目里都这么配,没出过幺蛾子。
小技巧:创建环境时加上 -y 参数可以跳过确认步骤,比如 conda create -n myenv python=3.9 -y,省得每次都要手打y。
2.2 PyTorch安装
PyTorch是障碍物检测的核心框架。安装前你得先搞清楚一件事:你的电脑有没有NVIDIA显卡?
有显卡 → 装CUDA版本
没显卡 → 装CPU版本
我个人建议,哪怕你暂时没显卡,也先装CPU版本把代码跑通。等后面有GPU了再换,不耽误事。
安装命令很简单,去PyTorch官网(pytorch.org)找到对应的命令。比如我常用的:
# CUDA 11.8 版本(推荐)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# CPU版本
pip install torch torchvision torchaudio
验证安装是否成功:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
如果输出 True,恭喜你,GPU可用。如果输出 False,也别慌——可能是驱动没装好,或者你装的是CPU版本。
注意:我曾经遇到过一个问题——装完PyTorch后,torch.cuda.is_available() 一直返回False。查了半天,发现是CUDA驱动版本太旧。所以装PyTorch前,最好先确认一下你的NVIDIA驱动版本。
2.3 CUDA与cuDNN设置
CUDA和cuDNN是什么?说白了,CUDA是NVIDIA的并行计算平台,cuDNN是专门为深度学习优化的加速库。PyTorch底层就是靠它们来调用GPU的。
安装步骤:
- 检查驱动:在终端输入
nvidia-smi,查看驱动版本和支持的CUDA版本 - 下载CUDA:去NVIDIA官网下载对应版本的CUDA Toolkit(我推荐11.8,稳定)
- 安装cuDNN:下载对应CUDA版本的cuDNN,解压后把文件复制到CUDA安装目录
具体来说,cuDNN的安装其实就是复制几个文件:
# 假设cuDNN解压后路径为 ~/Downloads/cudnn-linux-x86_64-8.9.7.29_cuda11-archive
cd ~/Downloads/cudnn-linux-x86_64-8.9.7.29_cuda11-archive
# 复制到CUDA目录
sudo cp include/cudnn*.h /usr/local/cuda/include/
sudo cp lib/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
验证cuDNN是否安装成功:
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
如果输出版本号,就说明装好了。
重要提醒:CUDA版本、cuDNN版本、PyTorch版本三者必须匹配。比如CUDA 11.8搭配cuDNN 8.9,PyTorch也要选对应CUDA 11.8的版本。不匹配的话,程序会直接报错或者默默用CPU跑——后者更坑,因为你可能根本不知道。
2.4 常用库安装
障碍物检测离不开几个基础库:OpenCV(图像处理)、NumPy(数值计算)、Matplotlib(可视化)。安装命令很简单:
pip install opencv-python numpy matplotlib
但这里有几个坑,我踩过,你得注意:
- OpenCV:装
opencv-python就够了,别装opencv-contrib-python,除非你真的需要额外模块。后者体积大,而且容易和前者冲突。 - NumPy:PyTorch自带NumPy,但版本可能比较老。建议单独装最新版:
pip install numpy --upgrade - Matplotlib:如果显示中文乱码,需要设置字体。我一般这样处理:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
验证所有库是否安装成功:
python -c "import cv2; import numpy as np; import matplotlib; print('All good!')"
小建议:把所有依赖写到一个 requirements.txt 文件里,以后换环境直接 pip install -r requirements.txt 一键安装。我每个项目都会这么干,省时省力。
2.5 知识体系总览
下面这张图帮你理清整个环境搭建的脉络:
这张图把整个环境搭建分成了三层:底层是Python和PyTorch,中间是三个常用库,顶层是验证环节。每一步都踩稳了,后面写代码才踏实。
2.6 常见问题与避坑指南
最后,我把自己这些年遇到过的坑总结一下:
| 问题 | 原因 | 解决方法 |
|---|---|---|
| torch.cuda.is_available() 返回 False | 驱动太旧 / 装了CPU版本 / CUDA版本不匹配 | 更新驱动,重装对应CUDA版本的PyTorch |
| OpenCV报错:无法加载图像 | 路径问题 / 图像格式不支持 | 用绝对路径,检查图像是否损坏 |
| Matplotlib中文乱码 | 缺少中文字体 | 设置rcParams字体为SimHei |
| conda创建环境太慢 | 默认源在国外 | 换国内镜像源(清华、阿里云) |
我曾经踩过的一个大坑:有一次我装完所有环境,跑YOLOv5训练,结果发现loss一直不下降。查了两天,最后发现是NumPy版本和PyTorch不兼容,导致数据加载时出了bug。从那以后,我每次装完环境都会先跑一个简单的demo验证一下,比如加载一张图片、做个矩阵运算。别嫌麻烦,这一步能救你命。
好了,环境搭建就讲到这里。配好环境只是第一步,后面我们会真正开始写代码、跑模型。记住一句话:环境配得好,调试没烦恼。