3. Python 基础环境搭建:Anaconda 安装与配置

说实话,很多初学者在算法仿真上栽跟头,八成不是算法本身的问题,而是环境没搭好。我见过太多人花了两小时调代码,最后发现是 Python 版本不对,或者某个库没装对版本。

这一章,咱们就把地基打牢。你跟着我的节奏走,半小时内搞定一套干净、可复用的 Python 仿真环境。

3.1 为什么选 Anaconda?

你可能会问:直接装个 Python 不就行了?嗯,理论上可以。但实际做 3A 算法仿真时,你会遇到几个头疼的问题:

  • 包依赖冲突:项目 A 需要 numpy 1.19,项目 B 需要 numpy 1.24,装在一起就炸了。
  • 系统污染:pip install 装了一堆包,想卸载时发现根本不知道哪些是系统自带的。
  • 跨平台移植:你在 Windows 上跑通的代码,放到 Linux 服务器上各种报错。

Anaconda 就是来解决这些问题的。它自带 Python 解释器、包管理器 conda,以及 1500+ 科学计算包。说白了,它是一个「全家桶」,开箱即用。

核心优势:conda 不仅能管理 Python 包,还能管理非 Python 的二进制依赖(比如 OpenCV 底层用到的 C++ 库)。这一点 pip 做不到。

3.2 Anaconda 安装步骤

我个人习惯从 清华大学开源软件镜像站 下载,速度比官网快很多。具体步骤如下:

  1. 下载安装包:访问 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,选择对应系统的版本。我建议选 Anaconda3-2024.10-1 或更新的版本,Python 3.12 起步。
  2. 安装过程:
    • Windows:双击 exe,一路 Next。注意勾选 Add Anaconda3 to my PATH environment variable(虽然安装程序会警告不推荐,但我建议勾上,省事)。
    • Linux/Mac:用 bash 命令执行 bash Anaconda3-*.sh,按提示操作。
  3. 验证安装:打开终端,输入 conda --version,看到版本号就说明装好了。

避坑指南:我曾经在 Windows 上装完 Anaconda 后,发现命令行里 conda 命令找不到。原因是安装时没勾选「添加到 PATH」。解决办法:手动把 C:\Users\你的用户名\anaconda3\Scripts 和 C:\Users\你的用户名\anaconda3 加到系统环境变量里。

3.3 配置国内镜像源

默认的 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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

配置完后,用 conda info 查看当前源列表,确认是否生效。

3.4 Python 虚拟环境创建

虚拟环境是 conda 最核心的功能。每个项目一个环境,互不干扰。我通常这样操作:

3.4.1 创建环境

# 创建一个名为 algo3a 的环境,指定 Python 3.10
conda create -n algo3a python=3.10

# 创建时同时安装常用包
conda create -n algo3a python=3.10 numpy scipy matplotlib

3.4.2 激活与退出

# Windows
conda activate algo3a

# Linux/Mac
source activate algo3a

# 退出当前环境
conda deactivate

3.4.3 管理环境

操作 命令 说明
查看所有环境 conda env list 带 * 的是当前激活的环境
克隆环境 conda create -n new_env --clone old_env 做实验前备份环境的好方法
导出环境 conda env export > environment.yml 分享给队友或部署到服务器
删除环境 conda remove -n algo3a --all 环境乱了就删掉重来

我的习惯:每个 3A 仿真项目我都会创建一个独立环境,命名规则是 项目名_py版本,比如 slam_py310、pathplan_py311。这样半年后回头看,一眼就知道当时用的什么配置。

3.5 必备科学计算库安装

做 3A 算法仿真,下面这四个库是标配。我按安装顺序列出来:

3.5.1 NumPy

数值计算的基础。矩阵运算、随机数生成、线性代数都靠它。

conda install numpy

3.5.2 SciPy

在 NumPy 基础上提供了更高级的算法:优化、插值、信号处理、统计等。

conda install scipy

3.5.3 OpenCV-Python

计算机视觉库。图像读取、特征提取、相机标定都离不开它。

conda install opencv-python

注意:如果你用 pip install opencv-python,有时会缺少视频编码相关的动态库。用 conda 安装会自动处理这些底层依赖。我曾经在 Ubuntu 上踩过这个坑,折腾了半天才发现是 ffmpeg 没装全。

3.5.4 Matplotlib

数据可视化。画轨迹图、误差曲线、直方图都靠它。

conda install matplotlib

3.6 验证安装

环境搭好了,咱们跑个简单脚本验证一下。创建一个 test_env.py 文件:

import numpy as np
import scipy.linalg as la
import cv2
import matplotlib.pyplot as plt

# 1. NumPy 测试:创建矩阵
A = np.array([[1, 2], [3, 4]])
print("NumPy 矩阵:\n", A)

# 2. SciPy 测试:矩阵求逆
A_inv = la.inv(A)
print("SciPy 逆矩阵:\n", A_inv)

# 3. OpenCV 测试:读取并显示图像
img = np.zeros((300, 300, 3), dtype=np.uint8)
cv2.rectangle(img, (50, 50), (250, 250), (0, 255, 0), 2)
cv2.imwrite('test_rect.png', img)
print("OpenCV 测试:已生成 test_rect.png")

# 4. Matplotlib 测试:画个正弦波
x = np.linspace(0, 2*np.pi, 100)
plt.plot(x, np.sin(x))
plt.title('Matplotlib 测试:正弦波')
plt.savefig('test_sin.png')
print("Matplotlib 测试:已生成 test_sin.png")

print("\n所有库安装成功!")

运行 python test_env.py,如果没有任何报错,并且生成了两张图片,说明环境搭建完成。

3.7 本章知识体系

下面这张图帮你理清整个环境搭建的脉络:

Python 基础环境搭建知识体系 Python 基础环境搭建知识体系 Anaconda 环境 安装与配置 虚拟环境管理 科学计算库 下载安装 配置镜像源 创建/激活 导出/克隆 NumPy SciPy OpenCV Matplotlib 验证测试脚本 每个项目独立环境 → 避免包冲突 导出 environment.yml → 团队协作标准化

3.8 常见问题与避坑

  • conda 命令找不到:检查环境变量,或者重新运行 Anaconda 安装程序,选择「修复」。
  • 安装包时速度极慢:确认是否配置了国内镜像源。用 conda config --show channels 查看。
  • OpenCV 导入报错:ImportError: libGL.so.1: cannot open shared object file。在 Linux 上执行 sudo apt install libgl1-mesa-glx 解决。
  • Matplotlib 中文乱码:在代码开头加上 plt.rcParams['font.sans-serif'] = ['SimHei'],或者下载中文字体。

我的经验:如果你在 Windows 上遇到 OpenCV 的 cv2.imshow() 窗口卡死,试试用 cv2.imwrite() 保存图片到本地查看,别在 GUI 上死磕。仿真环境里,保存结果比实时显示更实用。