3、Python开发环境搭建:Python 3.10+安装、虚拟环境管理、依赖管理(pip/poetry)、IDE选择(VS Code/PyCharm)
好,咱们正式开始动手了。
这一章,我带你把Python开发环境搭起来。别小看这一步,我在产线项目里见过太多因为环境不一致导致的诡异问题——开发机跑得好好的,一到产线工控机就报错。说白了,环境搭建是自动化框架的基石,地基不稳,后面全是坑。
3.1 Python 3.10+ 安装:选对版本,少走弯路
我个人习惯用Python 3.10或3.11。为什么不是最新的3.12?因为有些ATE仪器厂商的SDK还没跟上,你想想看,产线急着上线,结果发现某个库不兼容,那得多尴尬。
下载地址:python.org(别去第三方网站下,我吃过亏)
安装要点:安装时记得勾选「Add Python to PATH」
安装完成后,打开命令行验证一下:
python --version
# 输出示例:Python 3.10.11
pip --version
# 输出示例:pip 23.2.1 from ...
嗯,这里要注意。如果你电脑上同时装了多个Python版本,建议用 py -3.10 来指定版本。我在项目中遇到过,某台工控机装了Python 2.7和3.8,结果pip装包全装到2.7里去了,排查了半天。
3.2 虚拟环境管理:隔离才是王道
为什么要用虚拟环境?说白了,就是给每个项目一个独立的Python「小房间」。你想想看,项目A需要numpy 1.21,项目B需要numpy 1.26,要是装在一个全局环境里,早晚打架。
Python自带的 venv 模块就够用,轻量又稳定。我一般在项目根目录下创建虚拟环境:
# 创建虚拟环境
python -m venv .venv
# 激活(Windows)
.venv\Scripts\activate
# 激活(Linux/Mac)
source .venv/bin/activate
# 退出
deactivate
.venv(带点号),这样在文件管理器里默认隐藏,看着清爽。另外,记得把 .venv/ 加到 .gitignore 里,别把环境文件提交到Git仓库。
激活后,命令行前面会出现 (.venv) 前缀,说明你已经在虚拟环境里了。这时候安装的所有包,都只在这个项目里生效。
3.3 依赖管理:从 pip 到 poetry
依赖管理,说白了就是管好你的「包清单」。产线项目通常需要锁定所有依赖的精确版本,不然今天能跑,明天升级个库就崩了。
3.3.1 pip + requirements.txt(入门级)
最基础的方式,用 pip freeze 导出当前环境的包列表:
pip freeze > requirements.txt
别人拿到你的项目后,执行:
pip install -r requirements.txt
就能复现你的环境。但这种方式有个问题——它只记录了你当前装的包,不记录依赖的依赖。我曾经在产线遇到过,一台工控机因为系统自带的 six 库版本不同,导致整个框架启动报错。嗯,从那以后我开始用更专业的工具。
3.3.2 poetry(进阶级,我强烈推荐)
Poetry 是现在Python社区比较认可的依赖管理工具。它解决了 pip freeze 的几个痛点:
- 自动解析依赖树,避免版本冲突
- 生成
poetry.lock文件,锁定所有依赖的精确版本 - 支持项目元数据管理(名称、版本、作者等)
- 内置虚拟环境管理,不用手动
venv
安装 poetry:
pip install poetry
初始化项目:
poetry new tpms-framework
cd tpms-framework
poetry add pyserial numpy pyvisa
Poetry 会自动创建虚拟环境,并生成 pyproject.toml 和 poetry.lock。别人拿到项目后,只需要:
poetry install
就能完全复现你的环境,连依赖的依赖版本都一模一样。
C:\Users\xxx\AppData\Local\pypoetry,但工控机是域环境,用户目录有权限限制。解决方案是在项目根目录下创建 .venv:poetry config virtualenvs.in-project true。
3.4 IDE选择:VS Code vs PyCharm
这个问题经常有人问。我的回答是:看场景。
| 对比项 | VS Code | PyCharm |
|---|---|---|
| 启动速度 | 快(秒开) | 慢(尤其加载大项目) |
| 内存占用 | 低(200-400MB) | 高(1-2GB起步) |
| Python调试 | 够用,需配置 launch.json | 开箱即用,功能强大 |
| 远程开发 | 优秀(Remote SSH 插件) | 专业版支持 |
| 插件生态 | 丰富,但需自己组合 | 集成度高,开箱即用 |
| 学习成本 | 中等 | 较低(对新手友好) |
| 价格 | 免费 | 社区版免费,专业版收费 |
我个人在产线调试时用 VS Code 居多。原因很简单——产线工控机配置一般不高,PyCharm 跑起来风扇呼呼转。而且 VS Code 的 Remote SSH 插件让我能直接连到工控机上写代码,不用来回拷贝文件。
但如果你刚入门,或者项目比较大(比如几十个模块),PyCharm 的代码补全和重构功能确实更顺手。我建议你两个都装,根据场景切换。
- Python(微软官方)
- Pylance(代码补全和类型检查)
- Python Docstring Generator(自动生成文档注释)
- GitLens(查看代码历史)
- Remote - SSH(远程开发必备)
3.5 实战:搭建你的第一个TPMS项目环境
好,理论说完了,咱们动手走一遍。假设你要创建一个叫 tpms-ate 的项目:
# 1. 创建项目目录
mkdir tpms-ate
cd tpms-ate
# 2. 初始化 poetry 项目
poetry init
# 3. 添加核心依赖
poetry add pyserial==3.5 # 串口通信
poetry add numpy==1.24.3 # 数据处理
poetry add pyvisa==1.13.0 # 仪器控制(如果你用GPIB/以太网仪器)
poetry add pytest==7.4.0 # 单元测试
# 4. 添加开发依赖
poetry add --dev black==23.7.0 # 代码格式化
poetry add --dev flake8==6.1.0 # 代码检查
poetry add --dev mypy==1.5.0 # 类型检查
# 5. 激活虚拟环境
poetry shell
# 6. 验证安装
python -c "import serial; print(serial.__version__)"
看到输出版本号,说明环境搭好了。这时候你的项目目录结构应该是这样的:
tpms-ate/
├── .venv/ # 虚拟环境(poetry自动创建)
├── pyproject.toml # 项目配置和依赖声明
├── poetry.lock # 锁定版本文件
├── tpms_ate/ # 源码目录
│ └── __init__.py
└── tests/ # 测试目录
└── __init__.py
poetry.lock 提交到Git仓库!这个文件记录了所有依赖的精确版本,是保证「开发环境=产线环境」的关键。我见过有人把 .lock 文件加到 .gitignore 里,结果产线部署时依赖版本不一致,折腾了一整天。
好了,环境搭好了。下一章咱们开始写真正的TPMS通信代码。你想想看,有了这个干净的环境,后面写代码、调试、部署,都会顺畅很多。
公众号:蓝海资料掘金营,微信deep3321