第2章:Python环境搭建——解释器安装、虚拟环境配置、必备库安装

好,咱们正式开始动手了。

上一章聊了为什么选Python做硬件自动化,这一章直接落地。环境搭不好,后面全是白扯。我见过太多工程师卡在第一步——装个库报错,然后心态崩了。别急,跟着我来,十分钟搞定。

2.1 Python解释器安装

先说解释器。说白了,就是让电脑能读懂Python代码的那个东西。

我个人习惯用Python 3.10或3.11。为什么?因为3.8以下太老,3.12以上有些硬件库还没适配好。你想想看,咱们做嵌入式,最怕的就是库不兼容。所以选一个中间版本,稳。

推荐版本:Python 3.10.x 或 3.11.x

下载地址:python.org → Downloads → 选对应系统版本

安装时注意一个细节:勾选“Add Python to PATH”。这个选项默认没勾,我第一次装的时候就忘了,结果在命令行里打python死活找不到。后来折腾了十分钟才发现是PATH没加。嗯,这里要注意。

装完之后验证一下。打开终端(Windows用cmd或PowerShell,Mac/Linux用终端),输入:

python --version

如果看到类似 Python 3.10.11 的输出,恭喜,第一步搞定。

小技巧:Windows用户如果装了多个Python版本,可以用 py --list 查看所有已安装版本,用 py -3.10 指定版本运行。

2.2 虚拟环境配置

为什么要搞虚拟环境?

我举个例子。你手上有三个项目:项目A用pyyaml 5.x,项目B用pyyaml 6.x。如果不隔离,装一个就把另一个覆盖了。到时候项目A跑不起来,你查半天都不知道是yaml版本的问题。我曾经就被这种问题坑过一整天。

虚拟环境就是给每个项目一个独立的“小房间”。互不干扰。

创建虚拟环境很简单:

# 在项目目录下执行
python -m venv venv

第一个 venv 是模块名,第二个 venv 是环境目录名。你可以改成别的名字,比如 myenv,但我习惯用 venv,因为大家都这么用,一看就懂。

激活虚拟环境:

系统 命令
Windows (cmd) venv\Scripts\activate
Windows (PowerShell) venv\Scripts\Activate.ps1
Mac / Linux source venv/bin/activate

激活后,终端前面会出现 (venv) 字样。看到这个,就说明你已经在虚拟环境里了。

注意:PowerShell用户如果遇到执行策略限制,先执行 Set-ExecutionPolicy Unrestricted -Scope Process 再激活。这个权限问题我遇到过好几次,别慌。

退出虚拟环境用 deactivate,很简单。

2.3 必备库安装

好,环境有了,接下来装三个核心库:pyyamlopenpyxlpyserial

这三个库是咱们后面章节的基石。我简单说一下各自干嘛用的:

  • pyyaml:读写YAML配置文件。硬件项目里,寄存器描述、引脚映射、时序参数,我都用YAML写。比JSON可读性强,比XML轻量。
  • openpyxl:操作Excel文件。很多芯片厂商给的寄存器表就是Excel格式。用这个库可以直接读,不用手动复制粘贴。
  • pyserial:串口通信。嵌入式调试绕不开串口。读写寄存器、烧录固件、抓日志,全靠它。

安装命令:

pip install pyyaml openpyxl pyserial

如果你网速慢,可以加国内镜像源:

pip install pyyaml openpyxl pyserial -i https://pypi.tuna.tsinghua.edu.cn/simple

装完之后验证一下:

python -c "import yaml; import openpyxl; import serial; print('All good!')"

如果不报错,说明三个库都装好了。

避坑指南:我曾经在Linux上装pyserial时,发现串口权限不够,打不开设备。解决方法:把用户加到dialout组里。sudo usermod -a -G dialout $USER,然后注销重登。Windows用户一般没这个问题。

2.4 环境验证小脚本

最后,我习惯写一个简单的验证脚本,确保整个环境是通的。你把这个保存为 check_env.py

import sys
import yaml
import openpyxl
import serial

print(f"Python版本: {sys.version}")
print(f"pyyaml版本: {yaml.__version__}")
print(f"openpyxl版本: {openpyxl.__version__}")
print(f"pyserial版本: {serial.__version__}")
print("环境搭建完成,可以开始干活了!")

运行它:

python check_env.py

看到版本号都正常输出,恭喜你,环境搭建全部完成。

下一章,咱们开始用pyyaml写第一个寄存器描述文件。到时候你会发现,原来硬件配置可以这么清爽。