三、Python环境搭建与pyserial库安装
好,咱们进入实操环节。说实话,很多初学者在串口通信上栽跟头,不是代码写错了,而是环境没搭好。我见过太多人花一整天调试,最后发现是Python版本不对——这种坑,咱们今天一次性填平。
3.1 Python版本选择:别选最新的
Python版本怎么选?我个人习惯用Python 3.8或3.9。为什么?
你想想看,pyserial这个库虽然更新挺勤快,但有些工业现场的上位机还在用老系统。我去年帮一个工厂做点钞机对接,他们的工控机还是Windows 7,Python 3.10以上版本装上去直接报错——因为缺少某些运行时库。
所以我的建议是:
- 推荐版本:Python 3.8.10 或 3.9.13
- 下载地址:python.org 的 downloads 页面,找对应版本
- 安装注意:勾选「Add Python to PATH」——这个我每次都要提醒,忘了勾后面会很麻烦
⚠️ 避坑指南:我曾经帮一个同事排查问题,他装的是Python 3.12,结果pyserial的某些底层接口变了,折腾了两小时。所以,做工业项目,稳定比新特性重要。
3.2 虚拟环境创建:隔离是好事
为什么要用虚拟环境?说白了,就是怕不同项目打架。
你想想,今天做点钞机串口通信,明天做扫码枪TCP通信,两个项目可能依赖不同版本的库。如果不隔离,升级一个库可能把另一个项目搞崩。我在公司带团队时,要求每个项目必须建独立虚拟环境——这是血的教训换来的规矩。
创建步骤很简单:
- 打开命令行(Windows用cmd或PowerShell,Mac/Linux用终端)
- 进入你的项目目录
- 执行以下命令
# 创建虚拟环境(venv是Python自带的,不用额外装)
python -m venv cashier_env
# 激活虚拟环境
# Windows:
cashier_env\Scripts\activate
# Mac/Linux:
source cashier_env/bin/activate
# 看到命令行前面出现 (cashier_env) 就说明激活成功了
嗯,这里要注意:激活后,你安装的所有库都只在这个环境里生效。退出时输入 deactivate 就行。
3.3 pip安装pyserial:一行命令搞定
虚拟环境激活后,安装pyserial就简单了:
pip install pyserial
就这一行。但如果你遇到下载慢的问题——国内网络你懂的——可以加个镜像源:
pip install pyserial -i https://pypi.tuna.tsinghua.edu.cn/simple
清华的镜像源,我用了好几年,稳得很。
💡 小技巧:如果你同时管理多个项目,可以把镜像源写进pip配置文件,这样每次都不用手动加参数。Windows下配置文件在 %APPDATA%\pip\pip.ini,Linux在 ~/.pip/pip.conf。
3.4 验证安装:别急着写代码
装完别急着写代码,先验证一下。我习惯用Python交互模式快速测试:
# 在命令行输入 python 进入交互模式
python
# 然后输入:
import serial
print(serial.__version__)
# 如果输出版本号(比如 '3.5'),说明安装成功
# 如果没有报错,也说明安装成功
为什么会这样?因为pyserial只要能被import,就说明库文件完整、依赖满足。我曾经遇到一个情况:pip显示安装成功,但import时报错——后来发现是Python路径搞混了,虚拟环境没激活就装了库。
✅ 验证清单:
- Python版本:3.8.x 或 3.9.x
- 虚拟环境已激活(命令行有环境名前缀)
- pyserial已安装(import serial 无报错)
- 能打印出版本号
3.5 常见问题与解决
我整理了几个高频问题,都是我在项目现场遇到过的:
| 问题 | 原因 | 解决方法 |
|---|---|---|
| pip不是内部或外部命令 | Python没加到PATH | 重装Python,勾选「Add to PATH」 |
| 安装pyserial报权限错误 | 没在虚拟环境里操作 | 激活虚拟环境,或加 --user 参数 |
| import serial 报 ModuleNotFoundError | 装到了别的Python环境 | 检查当前用的是哪个python解释器 |
| 下载速度极慢 | 连的是国外源 | 用清华镜像源 |
⚠️ 最后提醒:如果你用的是公司电脑,可能装了杀毒软件或安全策略,会阻止pip联网下载。这时候可以找IT开通权限,或者离线安装——把pyserial的whl文件下载到本地,用 pip install 文件名.whl 安装。
好了,环境搭好,咱们下节课就可以真正开始写串口通信代码了。记住:环境是地基,地基稳了,楼才盖得高。