第二章:开发环境搭建
说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学,代码写得挺溜,结果卡在装包上,一卡就是半天。这一章,我就把这些年踩过的坑、总结的经验,一次性说清楚。
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
- 去 NVIDIA 官网下载对应版本的 CUDA Toolkit
- 安装时选自定义安装,只勾选 CUDA 组件
- 装完后设置环境变量
安装 cuDNN
- 去 NVIDIA 官网下载 cuDNN(需要注册账号)
- 解压后把 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 后,一次成功。所以,别追新,稳定才是王道。
好了,环境搭建这部分就到这里。你按这个流程走,基本不会出大问题。下一章,我们开始写第一个人脸检测程序。