第二章:开发环境搭建

说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学,代码写得挺溜,结果卡在装包上,一卡就是半天。这一章,我就把这些年踩过的坑、总结的经验,一次性说清楚。

2.1 Anaconda 环境配置

我个人习惯,不管做什么项目,第一件事就是装 Anaconda。为什么?因为它自带 Python 和一大堆常用库,省心。

下载与安装

  • 去官网下载对应系统的安装包(Windows/Linux/macOS)
  • 安装时记得勾选「Add Anaconda to my PATH environment variable」
  • 装完后打开终端,输入 conda --version 验证
小提示: 如果你用的是 macOS 或 Linux,建议装 Miniconda,轻量级,够用就行。

2.2 Python 虚拟环境创建

为什么要搞虚拟环境?说白了,就是怕不同项目打架。比如项目 A 要 TensorFlow 1.x,项目 B 要 2.x,没有虚拟环境,你就等着哭吧。

创建环境

conda create -n face_recognition python=3.8
conda activate face_recognition

我一般用 Python 3.8,兼容性好。3.9 以上有些老库可能不支持,你想想看,到时候报错还得降级,多麻烦。

常用命令

命令 说明
conda list 查看已安装的包
conda deactivate 退出当前环境
conda env remove -n 环境名 删除环境

2.3 核心库安装

接下来就是重头戏了。OpenCV、Dlib、FaceNet、Flask,一个一个来。

OpenCV

pip install opencv-python
pip install opencv-contrib-python  # 包含额外模块

嗯,这里要注意,如果你只是做基础的人脸检测,装第一个就够了。但如果你要用到人脸关键点检测之类的,建议装第二个。

Dlib

这个库,说实话,安装起来有点烦。尤其是 Windows 用户,经常报错。

pip install dlib

如果报错,试试这个:

conda install -c conda-forge dlib
我曾经遇到过: 在 Windows 上直接 pip install dlib,结果编译报错,折腾了两小时。后来发现,先装好 Visual Studio Build Tools 和 CMake,再装就顺了。

FaceNet

FaceNet 本身不是 pip 包,它是一个模型。你需要下载预训练权重,然后用 TensorFlow 或 PyTorch 加载。

pip install tensorflow==2.4.0  # 或者 pytorch
# 下载 facenet_model.h5 放到项目目录

Flask

这个简单,一行搞定:

pip install flask

2.4 GPU 环境配置(CUDA/cuDNN)

如果你有 NVIDIA 显卡,那 GPU 加速必须安排上。没有?嗯,那 CPU 也能跑,就是慢点。

检查显卡

nvidia-smi

这个命令会显示你的显卡型号和驱动版本。记下驱动版本,后面选 CUDA 版本要用。

安装 CUDA

  1. 去 NVIDIA 官网下载对应版本的 CUDA Toolkit
  2. 安装时选自定义安装,只勾选 CUDA 组件
  3. 装完后设置环境变量

安装 cuDNN

  1. 去 NVIDIA 官网下载 cuDNN(需要注册账号)
  2. 解压后把 bin、include、lib 文件夹复制到 CUDA 安装目录
版本匹配很重要: CUDA 11.2 对应 cuDNN 8.1,CUDA 11.8 对应 cuDNN 8.6。别乱配,否则跑不起来。

2.5 常见安装报错解决方案

这部分,我直接列个表,你遇到问题直接查。

报错信息 原因 解决方案
pip: command not found Python 没装好 重新安装 Python 或 Anaconda
Microsoft Visual C++ 14.0 is required 缺少 C++ 编译工具 安装 Visual Studio Build Tools
Could not find a version that satisfies the requirement 包名写错了或版本不存在 检查拼写,或换 conda 源
ImportError: No module named 'cv2' OpenCV 没装成功 pip install opencv-python 重装
CUDA error: no kernel image is available CUDA 版本不匹配 检查 nvidia-smi 和 CUDA 版本
避坑指南: 我曾经在装 Dlib 时卡了一整天,最后发现是 Python 版本太高。换成 3.8 后,一次成功。所以,别追新,稳定才是王道。

好了,环境搭建这部分就到这里。你按这个流程走,基本不会出大问题。下一章,我们开始写第一个人脸检测程序。