4. Python 环境搭建:解释器安装、虚拟环境配置、pip 换源与依赖管理

好,咱们正式开始动手了。量产烧录脚本,说白了就是用 Python 去控制烧录器、解析固件、处理日志。所以 Python 环境就是你的工作台。工作台搭不好,后面全是坑。

我个人习惯,不管项目大小,先把环境理干净。别图省事直接在系统 Python 里 pip install 一堆包,到时候版本冲突哭都来不及。今天咱们就把解释器、虚拟环境、pip 源、依赖管理这几个事一次性说清楚。

本章核心目标:搭建一个干净、可复现、不污染系统的 Python 开发环境,为后续量产脚本开发打好地基。

4.1 Python 解释器安装

先选版本。量产脚本我建议用 Python 3.8 到 3.11 之间。为什么?因为很多烧录器的 SDK 或者底层串口库,对 3.12、3.13 的支持还不稳定。我在项目中遇到过,升级到 Python 3.12 后,某个老款烧录器的 pySerial 驱动直接报错,折腾了半天才找到原因。

下载地址就是官网:python.org。别去其他地方下,安全第一。

安装时有个关键点——勾选 "Add Python to PATH"。我见过太多新手没勾这个,后面命令行敲 python 提示找不到,又去配环境变量,白白浪费时间。

操作系统 推荐版本 安装注意事项
Windows Python 3.10.x 勾选 PATH;选择 "Install for all users"
macOS Python 3.11.x 用官方安装包,别用系统自带
Linux (Ubuntu) Python 3.10.x 用 deadsnakes PPA 或源码编译

装完之后,打开终端验证一下:

python --version
# 输出示例:Python 3.10.12

pip --version
# 输出示例:pip 24.0 from ...

嗯,看到版本号就说明装好了。如果提示找不到命令,回去检查 PATH 勾选没。

4.2 虚拟环境配置

虚拟环境这东西,说白了就是给你的每个项目建一个独立的小房间。房间里装的 Python 版本、第三方库,跟外面互不干扰。

我刚开始做量产脚本时,一个项目用 pySerial 3.5,另一个项目用 pySerial 3.7,结果两个库打架,修了半天。后来老老实实用虚拟环境,再没出过这种问题。

4.2.1 使用 venv(Python 内置)

Python 3.3 以后自带了 venv,不用额外装。我个人最常用这个,轻量、干净。

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate

# macOS / Linux:
source venv/bin/activate

# 看到终端前面多了 (venv) 就对了
(venv) $

激活后,你 pip install 的所有包都会装到这个 venv 目录里,不会动系统 Python。

小技巧:把 venv 目录加到 .gitignore 里。虚拟环境不提交到代码仓库,别人拉下来自己建就行。

4.2.2 使用 virtualenv(更强大)

如果你需要指定 Python 版本,或者想用更快的包管理器,可以用 virtualenv。它比 venv 灵活一些。

pip install virtualenv

# 指定 Python 3.10 创建环境
virtualenv -p python3.10 myenv

source myenv/bin/activate

不过说实话,量产脚本场景下,venv 完全够用。除非你要同时维护 Python 2 和 3 的兼容,才需要上 virtualenv。

4.3 pip 换源与加速

pip 默认从国外 PyPI 服务器下载包,速度嘛……你懂的。尤其量产现场,网络环境可能很差,等一个包下载等十分钟,心态直接崩。

所以换源是必须的。国内常用的镜像源有这几个:

镜像源名称 URL 推荐指数
清华大学 TUNA https://pypi.tuna.tsinghua.edu.cn/simple ⭐⭐⭐⭐⭐
阿里云 https://mirrors.aliyun.com/pypi/simple ⭐⭐⭐⭐
中国科学技术大学 USTC https://pypi.mirrors.ustc.edu.cn/simple ⭐⭐⭐⭐
华为云 https://repo.huaweicloud.com/repository/pypi/simple ⭐⭐⭐

配置方法有两种:临时换源和永久换源。

4.3.1 临时换源

安装时加 -i 参数就行:

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

适合偶尔用一次的场景。

4.3.2 永久换源

写配置文件,一劳永逸。在用户目录下创建 pip.conf(Linux/macOS)或 pip.ini(Windows):

# Linux/macOS: ~/.pip/pip.conf
# Windows: %USERPROFILE%\pip\pip.ini

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

配置好之后,pip install 默认就走清华源了。速度从几十 KB/s 直接飙到几 MB/s。

注意:有些公司内网会屏蔽镜像源。如果你在公司环境,先确认能不能访问镜像站。我曾经在客户现场,内网连外网都走代理,pip 装包各种超时,最后只能离线安装。

4.4 依赖管理:requirements.txt

量产脚本通常要依赖好几个库:pySerial、pyusb、crcmod、tqdm 等等。你不能每次都手动 pip install 一个个装,太原始了。

标准做法是用 requirements.txt 文件记录所有依赖。

4.4.1 生成 requirements.txt

在虚拟环境激活状态下,执行:

pip freeze > requirements.txt

打开看看,内容大概是这样:

pyserial==3.5
pyusb==1.2.0
crcmod==1.7
tqdm==4.66.1
colorama==0.4.6

每一行是 包名==版本号。这样别人拿到你的代码,一条命令就能装好所有依赖。

4.4.2 从 requirements.txt 安装

pip install -r requirements.txt

就这么简单。我一般在量产脚本的 README 里直接写这条命令,现场工程师照着敲就行,不用动脑子。

4.4.3 版本锁定 vs 宽松版本

这里有个讲究。生产环境我建议锁定版本号,比如 pyserial==3.5。为什么?因为 pySerial 3.6 改了某个内部接口,你的脚本可能就炸了。

但如果你在开发阶段,可以用宽松写法:

pyserial>=3.5,<4.0
pyusb>=1.0,<2.0

这样 pip 会自动选符合范围的最新版本。

我的建议:开发用宽松版本,发布前跑一遍 pip freeze 锁定版本,生成正式的 requirements.txt。这样既灵活又稳定。

4.5 本章知识体系总览

下面这张图把 Python 环境搭建的完整流程串起来了。从安装解释器,到创建虚拟环境,再到配置 pip 源和管理依赖,每一步都有对应关系。

Python 环境搭建知识体系 Python 环境搭建知识体系 Python 环境搭建 解释器安装 虚拟环境配置 pip 换源加速 依赖管理 版本选择 PATH 配置 venv virtualenv 临时换源 永久配置 生成依赖 安装依赖 💡 核心原则:每个项目一个虚拟环境,依赖版本锁定,pip 源配置国内镜像 避免系统污染,确保量产脚本在不同机器上行为一致

4.6 常见问题与避坑

最后聊几个我踩过的坑,你遇到了直接照着修就行。

  • pip 版本太旧:有时候 pip install 报错,先升级 pip 试试。python -m pip install --upgrade pip
  • 虚拟环境激活失败:Windows 上如果提示 "无法加载文件",用管理员权限打开 PowerShell,执行 Set-ExecutionPolicy Unrestricted 解除限制。
  • 换源后还是慢:检查是不是走了代理。取消代理试试:unset http_proxy 和 unset https_proxy。
  • requirements.txt 里有本地路径:如果你用 pip install -e . 安装过本地包,pip freeze 会生成 -e 开头的行。这种要手动处理,或者用 pip list --format=freeze 替代。

重要提醒:量产现场用的电脑,Python 环境一定要提前准备好,别到产线上了才装包。我见过最惨的一次,客户产线网络断了,离线包又没带,硬生生耽误了半天。提前把 requirements.txt 和离线包都准备好,有备无患。