2. Python 环境准备:Anaconda 安装与配置、创建虚拟环境、conda 与 pip 换源、验证 Python 与 pip 版本
做计算机视觉,尤其是 OpenCV 和 YOLO 这类项目,Python 环境是第一步。这一步要是没走稳,后面全是坑。我个人习惯用 Anaconda 来管理环境,说白了就是因为它能帮我们把不同项目的依赖隔离开,互不干扰。
核心思路:用 Anaconda 创建独立的虚拟环境,每个环境有自己的一套 Python 版本和第三方库。这样项目 A 用 Python 3.8 + OpenCV 4.5,项目 B 用 Python 3.10 + OpenCV 4.8,完全不会打架。
2.1 Anaconda 是什么?为什么选它?
Anaconda 是一个 Python 发行版,自带 conda 包管理器和很多常用科学计算库。你想想看,要是手动装 NumPy、SciPy、Matplotlib 这些,光是解决依赖冲突就能折腾半天。Anaconda 把这些都打包好了,装完就能用。
我刚开始做项目时,直接在系统 Python 里装各种库,结果有一次装 OpenCV 时把系统 Python 搞崩了,重装了系统才恢复。嗯,从那以后我再也不敢在基础环境里乱装了。
| 特性 | Anaconda | 原生 Python |
|---|---|---|
| 包管理 | conda,支持二进制包 | pip,源码编译为主 |
| 环境隔离 | 原生支持,命令简单 | 需额外装 virtualenv |
| 预装库 | 1500+ 科学计算库 | 无 |
| 适用场景 | 数据科学、计算机视觉 | 通用开发 |
2.2 安装 Anaconda
去官网下载对应系统的安装包就行。Windows 用户记得选 64 位版本,别选错了。
安装时有几个关键点要注意:
- 安装路径不要有中文和空格——我见过有人装在「Program Files (x86)」下面,后面各种路径报错
- 勾选「Add Anaconda to my PATH environment variable」——虽然安装程序会警告不推荐,但我建议勾上,省得后面手动配环境变量
- 安装完成后重启终端——让环境变量生效
我曾经踩过的坑:安装时没勾 PATH 选项,结果在终端里输入 conda 提示找不到命令。后来手动配环境变量,又配错了路径,折腾了半小时。所以,直接勾上最省事。
验证安装是否成功,打开终端输入:
conda --version
如果输出版本号,比如 conda 24.1.2,就说明装好了。
2.3 创建虚拟环境
虚拟环境是 Anaconda 最核心的功能。我每个项目都会新建一个环境,命名规则一般是 项目名_py版本,比如 opencv_yolo_py310。
创建环境的命令:
conda create -n opencv_yolo python=3.10
这里 -n 后面是环境名称,python=3.10 指定 Python 版本。YOLOv8 官方推荐 Python 3.10 或 3.11,我们就用 3.10,兼容性最好。
创建过程中会提示是否安装基础包,输入 y 确认就行。
激活环境:
conda activate opencv_yolo
激活后,终端前面会出现 (opencv_yolo) 字样,说明你现在就在这个环境里了。
小技巧:退出环境用 conda deactivate。查看所有环境用 conda env list,当前激活的环境前面会有 * 标记。
2.4 conda 与 pip 换源
为什么要换源?因为默认的官方源在国外,下载速度慢得让人抓狂。我当年装 PyTorch 时,等了半小时进度条才动了一点点,后来换了清华源,几分钟就搞定了。
换源说白了就是把下载地址改成国内的镜像站。常用的镜像源有清华、中科大、阿里云等。
2.4.1 conda 换源
执行以下命令添加清华源:
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
查看当前配置:
conda config --show channels
如果看到清华源的地址在最前面,说明配置成功。
2.4.2 pip 换源
pip 换源有两种方式:临时换源和永久换源。
临时换源:安装时加 -i 参数
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
永久换源:修改配置文件
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
验证是否生效:
pip config list
注意:conda 和 pip 的源是独立的,需要分别配置。有些包 conda 源里没有,就得用 pip 装。比如 OpenCV 的某些扩展模块,我经常用 pip 来装。
2.5 验证 Python 与 pip 版本
环境配好了,源也换了,接下来验证一下环境是否正常。
在激活的 opencv_yolo 环境里执行:
python --version
pip --version
正常输出应该是:
Python 3.10.x
pip 23.x.x from ... (python 3.10)
注意看 pip 后面的路径,应该指向你当前环境的目录,而不是系统 Python。如果指向系统路径,说明环境没激活成功。
再验证一下 Python 解释器位置:
where python # Windows
which python # Linux/Mac
输出路径应该包含 envs\opencv_yolo 字样。
验证清单:
- ✅ conda 命令可用
- ✅ 虚拟环境已创建并激活
- ✅ conda 源已切换为国内镜像
- ✅ pip 源已切换为国内镜像
- ✅ Python 版本为 3.10.x
- ✅ pip 指向当前环境
2.6 本章知识结构
下面这张图把整个环境准备流程串起来了,你可以对照着检查自己做到哪一步了。
2.7 常见问题与避坑
环境准备这一步,我见过太多人卡住了。下面列几个高频问题:
- conda 命令找不到:检查环境变量,确保 Anaconda 的 Scripts 目录在 PATH 里
- 创建环境时网络超时:先换源再创建,或者用
conda create -n xxx python=3.10 --offline离线模式 - 激活环境后 pip 还是系统版本:用
conda install pip在当前环境重装 pip - 换源后下载还是慢:检查源地址是否正确,有些镜像站可能不稳定,换一个试试
我的习惯:每次创建新环境后,第一件事就是装 ipython 和 jupyter,方便后面调试代码。命令:conda install ipython jupyter