环境搭建与工具链:Python环境配置、PyTorch安装、CUDA与cuDNN设置、常用库安装

说实话,做障碍物检测这几年,我见过太多同学在环境搭建这一步就卡住了。明明代码写对了,结果跑不起来——多半是环境没配好。今天我就把这一整套流程掰开揉碎了讲给你听。

核心要点:环境搭建不是一次性的苦力活,而是你后续调试、排查问题的基本功。配好了,后面省心十倍。

2.1 Python环境配置

我个人习惯用 Anaconda 来管理Python环境。为什么?因为项目多了你就知道,每个项目依赖的包版本可能完全不同。你想想看,一个项目要PyTorch 1.10,另一个要2.0,硬装在一起迟早出问题。

安装步骤其实很简单:

  1. 去Anaconda官网下载对应系统的安装包(Windows/Linux/Mac)
  2. 一路默认安装,但记得勾选「Add Anaconda to my PATH」
  3. 打开终端或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的。

安装步骤:

  1. 检查驱动:在终端输入 nvidia-smi,查看驱动版本和支持的CUDA版本
  2. 下载CUDA:去NVIDIA官网下载对应版本的CUDA Toolkit(我推荐11.8,稳定)
  3. 安装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环境 Anaconda + Python 3.9 深度学习框架 PyTorch (CUDA/CPU) 加速库 CUDA + cuDNN 图像处理 OpenCV 数值计算 NumPy 可视化 Matplotlib 验证:import 测试 + nvidia-smi + 小demo

这张图把整个环境搭建分成了三层:底层是Python和PyTorch,中间是三个常用库,顶层是验证环节。每一步都踩稳了,后面写代码才踏实。

2.6 常见问题与避坑指南

最后,我把自己这些年遇到过的坑总结一下:

问题 原因 解决方法
torch.cuda.is_available() 返回 False 驱动太旧 / 装了CPU版本 / CUDA版本不匹配 更新驱动,重装对应CUDA版本的PyTorch
OpenCV报错:无法加载图像 路径问题 / 图像格式不支持 用绝对路径,检查图像是否损坏
Matplotlib中文乱码 缺少中文字体 设置rcParams字体为SimHei
conda创建环境太慢 默认源在国外 换国内镜像源(清华、阿里云)

我曾经踩过的一个大坑:有一次我装完所有环境,跑YOLOv5训练,结果发现loss一直不下降。查了两天,最后发现是NumPy版本和PyTorch不兼容,导致数据加载时出了bug。从那以后,我每次装完环境都会先跑一个简单的demo验证一下,比如加载一张图片、做个矩阵运算。别嫌麻烦,这一步能救你命。

好了,环境搭建就讲到这里。配好环境只是第一步,后面我们会真正开始写代码、跑模型。记住一句话:环境配得好,调试没烦恼。

可可精品资料库