第二章:Python环境与仪器通信库搭建
好,咱们正式开始动手了。
这一章,说白了就是给你的电脑“武装”起来。没有趁手的工具,再好的算法也跑不起来。我见过不少新手,一上来就写代码,结果连串口都打不开,折腾半天发现是Python环境没配好。嗯,咱们别走这个弯路。
2.1 安装Python:选对版本很重要
我个人习惯用Python 3.8到3.11之间的版本。为什么?因为PyVISA和PySerial在这些版本上最稳定。你想想看,要是装了个最新的3.13,结果某个库还没适配,那多闹心。
去官网下载安装包时,记得勾选“Add Python to PATH”。这个选项我每次都会强调——不勾的话,你后面在命令行敲python会提示找不到命令。我曾经帮一个同事排查了半天,最后发现就是这个小细节没注意。
python --version,如果显示版本号,说明装好了。
2.2 虚拟环境:隔离是个好习惯
做项目,我强烈建议用虚拟环境。为什么?因为不同项目可能依赖不同版本的库。比如你手头这个项目用PyVISA 1.11,另一个老项目可能只能用1.9。混在一起,迟早出问题。
创建虚拟环境很简单:
python -m venv daq_env
然后激活它:
- Windows:
daq_env\Scripts\activate - Linux/Mac:
source daq_env/bin/activate
激活后,命令行前面会出现 (daq_env) 字样。看到这个,你就知道现在是在隔离环境里了。
2.3 安装PySerial:串口通信的基石
PySerial是Python操作串口的标配。不管是RS232还是RS485,都靠它。
安装命令:
pip install pyserial
装完后,你可以写个小脚本测试一下:
import serial
print(serial.__version__)
能打印出版本号,就说明装好了。我在项目中遇到过一个问题:明明装了PySerial,但导入时报错。后来发现是虚拟环境没激活,pip装到了全局环境里。嗯,这种坑踩过一次就记住了。
2.4 安装PyVISA:仪器控制的万能钥匙
PyVISA是Python和仪器通信的桥梁。它支持GPIB、USB、TCP/IP等多种接口。说白了,不管你的仪器是安捷伦的还是泰克的,PyVISA都能搞定。
安装命令:
pip install pyvisa pyvisa-py
这里我装了两个包:pyvisa 是核心库,pyvisa-py 是纯Python实现的后端。为什么推荐这个组合?因为不需要额外装NI-VISA驱动,省事。
验证安装:
import pyvisa
rm = pyvisa.ResourceManager()
print(rm.list_resources())
如果返回一个列表(可能是空的),说明PyVISA能正常工作。我曾经用这个命令发现了一台隐藏的USB仪器,当时还以为是驱动没装好呢。
2.5 安装NumPy和Matplotlib:数据处理与可视化
采集到的数据,总得处理吧?总得画图吧?NumPy和Matplotlib就是干这个的。
安装命令:
pip install numpy matplotlib
NumPy用来做数组运算,Matplotlib用来画波形图。这两个库在后续章节会频繁用到。
简单测试一下:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
如果弹出一个正弦波窗口,说明安装成功。嗯,看到这个波形,我心里就踏实了。
2.6 一键安装:用requirements.txt省心
每次手动装四个库,有点麻烦。我习惯把依赖写到一个文件里:
pyserial==3.5
pyvisa==1.13.0
pyvisa-py==0.6.1
numpy==1.24.3
matplotlib==3.7.1
然后一行命令搞定:
pip install -r requirements.txt
这样不仅快,还能保证版本一致。你想想看,要是团队里每个人装的版本不一样,调试起来得多头疼。
2.7 避坑指南:我踩过的几个坑
- 权限问题: 在Linux下访问串口,需要把用户加到dialout组。我当初折腾了一下午,最后发现是权限不够。
- 32位 vs 64位: 有些老仪器的驱动只支持32位Python。如果你遇到莫名其妙的错误,检查一下Python位数。
- 路径中文: 虚拟环境路径里不要有中文。我曾经把项目放在“桌面”上,结果PyVISA死活找不到后端。后来改成英文路径就好了。
好,环境搭好了,咱们下章见。