第1章:Python环境搭建——在Windows/Linux/Mac上搭建Python开发环境,安装必要的嵌入式开发库
说实话,很多做嵌入式开发的朋友,一听到「搭环境」就头大。我刚开始那会儿也是,觉得装个Python嘛,下一步下一步就完事了。结果呢?串口读不到数据,VISA库死活装不上,折腾一整天。
后来我学乖了。环境搭得好,后面写脚本才顺。这一章,我就把我在Windows、Linux、Mac三套系统上的实战经验,掰开了揉碎了讲给你听。
1.1 为什么非得用Python?
你可能会问:「我C语言写得好好的,干嘛要学Python?」
嗯,这个问题我当年也问过自己。直到有一次,我需要给一块新板子做批量测试——烧录、读寄存器、校验、生成报告,一套流程下来,用C写要几百行,还得考虑内存泄漏。用Python呢?30行搞定。
说白了,Python在嵌入式开发里,不是用来替代C的。它是你的「瑞士军刀」——快速验证、自动化测试、数据处理,这些脏活累活,交给Python最合适。
1.2 在Windows上搭建环境
Windows用户最多,坑也最多。我踩过的坑,你就不用再踩了。
1.2.1 下载与安装Python
去官网下载Python 3.10或3.11版本。别追新,3.12有些库还没适配。
- 打开
python.org,找到Downloads → Windows - 选 Windows installer (64-bit)
- 安装时,一定要勾选「Add Python to PATH」
- 选「Customize installation」,确保pip被勾上
1.2.2 验证安装
打开命令提示符(cmd),输入:
python --version
pip --version
如果看到版本号,恭喜你,第一步走通了。
1.2.3 安装嵌入式开发库
嵌入式开发最常用的两个库:pySerial 和 pyvisa。
pip install pyserial
pip install pyvisa
pip install pyvisa-py # 纯Python后端,不用装NI-VISA
我个人习惯用 pyvisa-py 后端,省去装NI-VISA驱动的麻烦。你想想看,要是每台电脑都得装个几百兆的NI驱动,那多折腾。
1.2.4 避坑指南
- 权限问题: 如果提示权限不足,用管理员身份运行cmd
- 多版本Python: 用
py -3.10 -m pip install xxx指定版本 - 网络慢: 加国内镜像
pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple
1.3 在Linux上搭建环境
Linux是嵌入式开发的主战场。我平时做ARM、RISC-V的调试,基本都在Ubuntu上。
1.3.1 检查系统Python
大多数Linux发行版自带Python3。先看看版本:
python3 --version
如果版本低于3.8,建议升级。我在项目中遇到过,有些新库在3.6上跑不起来。
1.3.2 安装pip和虚拟环境
sudo apt update
sudo apt install python3-pip python3-venv
我强烈建议用虚拟环境。为什么?因为不同项目依赖的库版本可能冲突。你想想看,一个项目用pySerial 3.4,另一个用3.5,装在一起迟早出问题。
1.3.3 创建虚拟环境
mkdir my_embed_project
cd my_embed_project
python3 -m venv venv
source venv/bin/activate
看到命令行前面多了 (venv),说明环境激活了。这时候再装库,就只影响当前项目。
1.3.4 安装嵌入式库
pip install pyserial pyvisa pyvisa-py
/dev/ttyUSB0 或 /dev/ttyACM0。记得把用户加到dialout组:sudo usermod -a -G dialout $USER,不然没权限访问串口。
1.4 在macOS上搭建环境
Mac用户相对少,但做嵌入式开发的也不少。我自己的主力机就是MacBook Pro。
1.4.1 安装Homebrew
Mac上推荐用Homebrew管理软件包。打开终端:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
1.4.2 安装Python
brew install python@3.11
装完后,用 python3.11 --version 验证。
1.4.3 安装嵌入式库
pip3 install pyserial pyvisa pyvisa-py
/dev/cu.usbserial 访问串口,记得在「安全性与隐私」里给终端授权。
1.5 验证环境是否可用
环境搭好了,得跑个例子验证一下。写个简单的串口扫描脚本:
import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
for port in ports:
print(f"发现设备: {port.device} - {port.description}")
if not ports:
print("没有发现串口设备,请检查连接。")
保存为 scan_ports.py,运行:
python scan_ports.py
如果能看到设备列表,说明pySerial装好了,环境没问题。
1.6 常见问题与解决方案
| 问题 | 原因 | 解决方法 |
|---|---|---|
| pip安装超时 | 网络问题 | 使用国内镜像源 |
| 找不到串口 | 权限不足 | Linux加dialout组,Mac授权 |
| pyvisa报错 | 后端未指定 | 加 pyvisa-py 后端 |
| 多版本冲突 | PATH混乱 | 用虚拟环境隔离 |
1.7 我的个人建议
环境搭建这件事,看起来简单,但细节决定成败。我见过太多人卡在第一步,然后就放弃了。
我的建议是:
- 用虚拟环境——这是最值得养成的习惯
- 先跑通一个最小例子——别一上来就搞大项目
- 遇到问题先搜——你踩的坑,99%别人都踩过
好了,环境搭好了,下一章我们开始写第一个自动化脚本。到时候你就知道,前面这些折腾,都是值得的。