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 本章知识结构

下面这张图把整个环境准备流程串起来了,你可以对照着检查自己做到哪一步了。

Python 环境准备流程 安装 Anaconda 创建虚拟环境 conda / pip 换源 验证 Python / pip ✅ 环境就绪,可以装库了 关键命令速查 conda create -n 环境名 python=3.10 conda activate 环境名 conda deactivate 换源命令速查 conda config --add channels 源地址 pip config set global.index-url 源地址 pip install 包名 -i 源地址

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