3. 开发环境搭建:Python环境配置、PyCharm项目初始化、虚拟环境与依赖管理

好,咱们正式开始动手了。做嵌入式系统开发,尤其是心电监护仪这种医疗设备,环境搭建这一步看似基础,但坑其实不少。我见过太多人因为Python版本不对、依赖冲突,折腾半天连个串口都打不开。咱们今天就把这事一次性搞定。

3.1 Python环境配置:选对版本,少走弯路

先说Python版本。我个人习惯用Python 3.8或3.9,为什么?因为很多医疗设备相关的库,比如pyserial、pyusb、以及一些信号处理库,在3.10以上版本偶尔会出兼容性问题。你想想看,项目做一半发现某个库不支持,那得多闹心。

下载地址我就不贴了,直接去python.org下载对应版本。安装时记得勾选「Add Python to PATH」,这个很重要。我遇到过有人没勾,结果命令行里python都找不到,折腾半天。

小提示:安装完成后,打开命令行(cmd或PowerShell),输入 python --version 确认版本。如果显示的是3.8.x或3.9.x,那就对了。

嗯,这里要注意:如果你电脑上已经装了其他版本的Python,建议用虚拟环境隔离。咱们后面会讲。

3.2 PyCharm项目初始化:从零开始搭架子

PyCharm是我最常用的IDE,社区版就够用,不用花钱。打开PyCharm,点击「New Project」,然后咱们一步步来。

首先,项目位置选一个你容易找到的目录,比如 D:\ECG_Monitor。项目名字就叫 ecg_monitor 吧,简洁明了。

关键一步:在「New Project」对话框里,找到「Interpreter type」,选「Virtualenv」。PyCharm会自动帮你创建一个虚拟环境。我建议把虚拟环境放在项目目录下,这样整个项目可以整体移动,方便。

重点:虚拟环境的名字建议用 .venvvenv,这是行业惯例。不要用中文,也不要用空格。

创建完成后,你会看到项目结构大概是这样:

ecg_monitor/
├── .venv/          # 虚拟环境目录
├── main.py         # 主程序入口
└── requirements.txt # 依赖清单(稍后创建)

我曾经有个学员,把虚拟环境放在C盘系统目录下,结果重装系统后项目全废了。所以,虚拟环境一定要跟着项目走。

3.3 虚拟环境:为什么必须用?

说白了,虚拟环境就是给你的项目一个「独立的小房间」。每个项目有自己的Python解释器和第三方库,互不干扰。你想想看,如果A项目需要numpy 1.19,B项目需要numpy 1.24,没有虚拟环境,你怎么办?

激活虚拟环境的方法很简单:

  • Windows:在项目目录下运行 .venv\Scripts\activate
  • macOS/Linux:运行 source .venv/bin/activate

激活后,命令行前面会出现 (.venv) 字样,说明你已经在虚拟环境里了。这时候安装的所有库,都只在这个项目里生效。

警告:千万不要用 pip install 安装全局库!我曾经见过有人把项目依赖装到系统Python里,结果另一个项目跑起来全是版本冲突。虚拟环境就是用来隔离这些问题的。

3.4 依赖管理:用requirements.txt锁死版本

项目做大了,依赖的库会越来越多。心电监护仪项目至少需要这些:

库名 用途 建议版本
pyserial 串口通信,读取监护仪数据 3.5
numpy 信号处理,数组运算 1.21.0
scipy 滤波、峰值检测等算法 1.7.0
matplotlib 波形显示、数据可视化 3.5.0
pyqt5 GUI界面开发 5.15.6

安装命令很简单:

pip install pyserial==3.5 numpy==1.21.0 scipy==1.7.0 matplotlib==3.5.0 pyqt5==5.15.6

安装完成后,用这个命令生成依赖清单:

pip freeze > requirements.txt

打开 requirements.txt,你会看到类似这样的内容:

pyserial==3.5
numpy==1.21.0
scipy==1.7.0
matplotlib==3.5.0
PyQt5==5.15.6

以后换电脑或者给别人用,只需要运行 pip install -r requirements.txt,所有依赖一键安装。方便吧?

避坑指南:我曾经在项目中忘了锁版本,结果队友用pip安装时自动装了最新版,导致一个API废弃了,代码跑不起来。所以,requirements.txt 一定要提交到版本控制里。

3.5 验证环境:跑一个简单的测试

环境搭好了,咱们验证一下。在 main.py 里写几行代码:

import serial
import numpy as np
import matplotlib.pyplot as plt

print("环境配置成功!")
print(f"PySerial版本: {serial.__version__}")
print(f"NumPy版本: {np.__version__}")

# 生成一个模拟的心电信号
t = np.linspace(0, 1, 1000)
ecg_signal = np.sin(2 * np.pi * 5 * t)  # 模拟5Hz的心电波形

plt.plot(t, ecg_signal)
plt.title("模拟心电信号测试")
plt.xlabel("时间 (秒)")
plt.ylabel("幅值")
plt.show()

运行一下,如果能看到一个正弦波图形,说明环境搭建成功了。嗯,就这么简单。

好了,环境搭建这块就到这里。下一章咱们开始写真正的串口通信代码,读取监护仪的数据。到时候你会感谢今天把环境搭得这么干净的自己。