三、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通信,两个项目可能依赖不同版本的库。如果不隔离,升级一个库可能把另一个项目搞崩。我在公司带团队时,要求每个项目必须建独立虚拟环境——这是血的教训换来的规矩。

创建步骤很简单:

  1. 打开命令行(Windows用cmd或PowerShell,Mac/Linux用终端)
  2. 进入你的项目目录
  3. 执行以下命令
# 创建虚拟环境(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 安装。

好了,环境搭好,咱们下节课就可以真正开始写串口通信代码了。记住:环境是地基,地基稳了,楼才盖得高。