第二章:开发环境搭建——工欲善其事,必先利其器

说实话,我见过太多学员卡在环境搭建这一步。明明代码逻辑没问题,就是跑不起来。最后发现,要么是Python版本不对,要么是库没装全。所以这一章,咱们把地基打牢。

2.1 安装Python(推荐3.8+)

我个人习惯用Python 3.8或3.9。为什么?因为RPi.GPIO这个库在3.10以上版本偶尔会闹脾气。我在项目中遇到过,明明代码一模一样,换到3.10就报错。后来查了半天,发现是某些底层接口变了。

去官网下载安装包时,记得勾选「Add Python to PATH」。这个选项很多人会忽略,结果在命令行里敲python死活找不到命令。嗯,这里要注意。

小提示: 如果你用的是树莓派系统,Python通常已经预装了。在终端输入 python3 --version 就能看到版本号。如果版本低于3.8,建议升级一下。

2.2 配置虚拟环境

虚拟环境这东西,说白了就是给每个项目一个独立的小房间。你想想看,如果所有项目都共用一套库,A项目要numpy 1.20,B项目要numpy 1.24,那不乱套了?

我建议用 venv 模块,Python自带的,不用额外装。操作很简单:

# 创建虚拟环境
python -m venv massage_env

# 激活虚拟环境(Windows)
massage_env\Scripts\activate

# 激活虚拟环境(Linux/Mac)
source massage_env/bin/activate

激活成功后,命令行前面会出现 (massage_env) 字样。看到这个,就说明你已经在虚拟环境里了。

警告: 千万不要在系统全局Python里直接装库!我曾经有一次手滑,把系统Python的numpy给升级了,结果系统自带的某个工具直接罢工。从那以后,我每个项目都老老实实用虚拟环境。

2.3 安装必要的库

接下来装四个核心库。我按顺序来,这样不容易出问题:

pip install RPi.GPIO
pip install numpy
pip install matplotlib
pip install scipy

等等,这里有个坑。如果你是在Windows上做开发(没有树莓派硬件),RPi.GPIO是装不上的。为什么?因为它依赖树莓派的硬件接口。别急,我有办法。

我推荐用 RPi.GPIO-emulator 这个模拟库。它能在普通电脑上模拟GPIO的行为:

pip install RPi.GPIO-emulator

装好之后,代码里导入的方式完全一样。你写 import RPi.GPIO as GPIO,它自动就用模拟版本。等代码调试好了,再部署到真树莓派上。这个技巧我在好几个项目里都用过,省了不少事。

2.4 验证GPIO输出

环境搭好了,咱们得验证一下能不能用。写个简单的测试脚本:

import RPi.GPIO as GPIO
import time

# 设置引脚模式
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)  # 用BCM编号的18号引脚

# 让LED闪烁5次
for i in range(5):
    GPIO.output(18, GPIO.HIGH)
    time.sleep(0.5)
    GPIO.output(18, GPIO.LOW)
    time.sleep(0.5)

# 清理资源
GPIO.cleanup()

如果你用的是真树莓派,接个LED到18号引脚和GND,就能看到它一闪一闪的。如果是模拟器,程序会正常跑完,不会报错——这就是验证通过。

重要: 每次用完GPIO,记得调用 GPIO.cleanup()。不然下次运行程序时,引脚可能还是上次的状态。我刚开始学的时候经常忘,结果LED死活不亮,排查了半天才发现是引脚没复位。

2.5 常见问题与避坑

我把这些年遇到的环境问题整理了一下,你直接对照着看:

问题 原因 解决办法
pip安装超时 默认源在国外,网络慢 用国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
ImportError: No module named 'RPi' 没装RPi.GPIO,或者没激活虚拟环境 检查是否在虚拟环境里,重新安装
GPIO.setmode报错 在非树莓派系统上运行,且没装模拟器 安装RPi.GPIO-emulator
matplotlib中文乱码 系统缺少中文字体 安装中文字体,或设置字体参数

我曾经有一次,在客户现场调试按摩仪波形程序。环境搭了半天,GPIO死活没反应。最后发现,是树莓派的GPIO引脚被之前的程序占用了,没释放干净。所以你看,cleanup() 这步真不能省。

2.6 本章小结

到这步,你的开发环境应该已经能跑起来了。Python 3.8+、虚拟环境、四个核心库、GPIO验证,一个都不能少。下一章,咱们开始真正写波形生成代码。到时候你会发现,环境搭得越稳,后面写代码越顺手。

对了,如果你在搭建过程中遇到任何问题,别硬扛。去群里问,或者翻翻我之前的文章。环境问题嘛,说白了就是经验问题,踩过一次坑,下次就记住了。