环境搭建:Python环境配置、虚拟环境创建、常用库安装
说实话,很多做传感器标定的工程师,最后卡住的不是算法本身,而是环境没搭好。我见过太多人花了两天时间调代码,最后发现是numpy版本不对。嗯,咱们先把地基打牢。
一、Python版本选择
我个人习惯用Python 3.8或3.10。为什么?3.8足够稳定,大部分科学计算库都支持。3.10性能有提升,但有些老库可能不兼容。
避坑指南: 我曾经在项目里用了Python 3.11,结果scipy有个函数报错,查了半天发现是版本问题。后来老老实实退回3.10。
去官网下载安装包时,记得勾选「Add Python to PATH」。这一步很多人会忘,导致后面命令行里打不出python命令。
二、虚拟环境——你的项目隔离区
你想想看,一个项目用numpy 1.21,另一个用1.24。如果装在一起,迟早出问题。虚拟环境就是干这个的。
我常用的工具是venv,Python自带的,不用额外装。操作很简单:
# 创建虚拟环境
python -m venv sensor_calib_env
# 激活(Windows)
sensor_calib_env\Scripts\activate
# 激活(Mac/Linux)
source sensor_calib_env/bin/activate
# 退出
deactivate
激活后,命令行前面会出现环境名。看到那个括号了吗?说明你已经在虚拟环境里了。
小技巧: 我习惯把虚拟环境建在项目根目录下,取名
.venv。这样一眼就能看到,而且不会跟项目文件混在一起。
三、常用库安装
传感器标定离不开这几个库。说白了,它们是我们的工具箱。
| 库名 | 用途 | 安装命令 |
|---|---|---|
| numpy | 数组运算、矩阵操作 | pip install numpy |
| scipy | 优化算法、插值、滤波 | pip install scipy |
| matplotlib | 数据可视化、曲线绘制 | pip install matplotlib |
| pandas | 数据读取、表格处理 | pip install pandas |
安装时建议用国内镜像,速度会快很多:
pip install numpy scipy matplotlib pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
重点: 安装完成后,用
pip list检查一下版本。确保numpy版本不低于1.20,scipy不低于1.7。太低的话,有些标定算法跑不起来。
四、验证环境是否正常
写个简单的脚本测试一下:
import numpy as np
import scipy.optimize as opt
import matplotlib.pyplot as plt
import pandas as pd
print("numpy版本:", np.__version__)
print("scipy版本:", scipy.__version__)
# 生成一组模拟传感器数据
x = np.linspace(0, 10, 100)
y = 2.5 * x + 1.2 + np.random.normal(0, 0.5, 100)
# 用scipy做线性拟合
def linear_func(x, a, b):
return a * x + b
params, _ = opt.curve_fit(linear_func, x, y)
print(f"拟合结果: a={params[0]:.3f}, b={params[1]:.3f}")
# 画图看看
plt.plot(x, y, 'o', label='原始数据')
plt.plot(x, linear_func(x, *params), 'r-', label='拟合曲线')
plt.legend()
plt.show()
能跑出图来,说明环境没问题。我记得第一次做标定时,就是靠这个脚本确认了所有库都正常工作。
五、常见问题与解决
- pip不是内部命令——检查Python是否添加到PATH,或者用
python -m pip install - 安装超时——换国内镜像,或者加
--default-timeout=100 - 版本冲突——用虚拟环境隔离,别偷懒
- matplotlib中文乱码——设置中文字体,后面章节会细讲
曾经踩过的坑: 有一次我在系统环境里直接装了opencv,结果跟项目里的numpy版本冲突,标定算法全崩了。从那以后,每个项目我都老老实实用虚拟环境。
六、知识体系总览
下面这张图,把环境搭建的核心逻辑串起来了:
环境搭建看起来琐碎,但一次配好,后面能省很多事。我每次开始新项目,第一件事就是建虚拟环境、装库、跑测试脚本。三分钟的事,别省。
我的习惯: 把安装命令和版本号记在项目根目录的
requirements.txt里。下次换电脑,一行pip install -r requirements.txt就全搞定了。
好了,环境搭好了。接下来就可以真正开始处理传感器数据了。