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 安装步骤
我个人习惯从 清华大学开源软件镜像站 下载,速度比官网快很多。具体步骤如下:
- 下载安装包:访问
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,选择对应系统的版本。我建议选 Anaconda3-2024.10-1 或更新的版本,Python 3.12 起步。 - 安装过程:
- Windows:双击 exe,一路 Next。注意勾选 Add Anaconda3 to my PATH environment variable(虽然安装程序会警告不推荐,但我建议勾上,省事)。
- Linux/Mac:用 bash 命令执行
bash Anaconda3-*.sh,按提示操作。
- 验证安装:打开终端,输入
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 本章知识体系
下面这张图帮你理清整个环境搭建的脉络:
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 上死磕。仿真环境里,保存结果比实时显示更实用。