1. Python 入门与开发环境搭建归纳总结
说实话,很多人学 Python 第一步就卡在环境上。我见过不少同事,Python 装了三四个版本,虚拟环境搞得一团乱,最后连 pip list 都跑不出干净结果。这章我不跟你扯太多历史,直接给你一套我用了五六年的“零坑配置方案”。
1.1 为什么要先搞环境?
批处理质控脚本本质是“跑在别人机器上的工具”。如果你的环境依赖写死在本机全局 Python,换台电脑立刻炸。我早期吃过这亏——部署到客户服务器,发现人家 Python 3.6 跑不了 f-string,凌晨两点改代码……嗯,从那以后,我所有项目都强制虚拟环境+固定版本。
核心目标就三条:
- 可复现——换机器一条命令装好所有依赖
- 隔离——不污染系统 Python,也不被别的项目干扰
- 可升级——改需求时不用从头再配一遍
一句话总结:环境管理不是“装上了就行”,而是“别人也能装得一模一样”。
1.2 我的“最小化工具链”
我不推荐新手装 Anaconda,太重。我自己的日常工具就这几个:
| 工具 | 用途 | 我的选择 |
|---|---|---|
| Python 解释器 | 核心运行环境 | Python 3.10+(推荐 3.11) |
| 包管理器 | 安装第三方库 | pip + venv |
| IDE / 编辑器 | 写代码、调试 | VS Code(轻量)或 PyCharm(项目大时) |
| 版本锁定 | 固定依赖版本 | requirements.txt + pip freeze |
你可能会问:为什么不用 conda?我个人习惯把 conda 留给数据科学项目,因为它的环境解析器在大包依赖时比较慢。批处理质控的依赖通常就几个库(比如 pandas、openpyxl、pyyaml),venv 完全够用。
1.3 安装与验证(避坑指南)
安装 Python 本身很简单,但有两个坑我踩过:
- 坑一:Windows 上安装时一定要勾选
Add Python to PATH。我曾经没勾,后面所有命令都要写全路径,烦死。 - 坑二:macOS 自带 Python 2,千万别用。直接官网下载 3.x 安装包。
警告:不要用系统自带包管理器(如 brew 或 apt)装 Python,版本通常滞后。去 python.org 下载官方安装包最稳。
装完后验证一下:
python --version
pip --version
如果输出类似 Python 3.11.4 和 pip 23.2.1,说明搞定了。
1.4 虚拟环境——每个项目一个“独立房间”
我见过最惨的现场:项目 A 需要 pandas 1.0,项目 B 需要 pandas 2.0,结果全局装了个 1.5,两边都不兼容。虚拟环境就是解决这个的——每个项目拥有独立的 site-packages 目录。
创建虚拟环境的命令很简单:
python -m venv .venv
这会在当前目录下创建一个 .venv 文件夹(名字随意,我习惯用 .venv 这样 gitignore 好写)。然后激活它:
# Windows (cmd)
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
激活后终端前面会出现 (.venv) 提示,这时候你装的所有包都只属于这个项目。退出时直接输入 deactivate。
小技巧:把 .venv/ 加到 .gitignore 里。我一般还会把 pip freeze > requirements.txt 写成一个脚本,每次提交前更新依赖清单。
1.5 包管理与依赖锁定
安装包用 pip install,卸载用 pip uninstall。但真正重要的是“锁定依赖版本”——否则别人一拉代码,装到的版本可能跟你不一样,跑起来就报错。
我的标准流程:
- 激活虚拟环境
pip install 包名==版本号(显式指定版本)- 开发完执行
pip freeze > requirements.txt - 把这个文件放进 Git
别人拿到项目后,只需:
python -m venv .venv
source .venv/bin/activate # 或 Windows 命令
pip install -r requirements.txt
这样就实现了“环境一致性”。
1.6 知识体系全景图
下面这张图我把核心概念串起来了——你大概看一眼,就知道整个环境搭建的骨架长什么样。
1.7 第一个批处理脚本骨架
环境搭好,写个最简单的批处理质控逻辑试试手。比如读取一个文件,统计行数,输出报告:
#!/usr/bin/env python3
# encoding: utf-8
"""
batch_qc_demo.py —— 批处理质控骨架
"""
import sys
import json
def qc_check(file_path):
# 这里只是一个骨架,实际会调用 openpyxl 读取 Excel 等
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
result = {
"file": file_path,
"line_count": len(lines),
"status": "pass" if len(lines) > 0 else "fail"
}
return result
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python batch_qc_demo.py ")
sys.exit(1)
report = qc_check(sys.argv[1])
print(json.dumps(report, indent=2))
这个脚本虽然简单,但它已经包含了批处理质控的几个核心要素:命令行参数、读取文件、结构化输出。后面我们会慢慢往里面加规则引擎、多文件批量跑、结果汇总等功能。
一点补充:我习惯把 if __name__ == "__main__" 块和核心函数分开。这样写单元测试时可以直接 import 函数,不会触发执行。这个习惯让我少改了好多重复代码。
1.8 本章小结
环境搭建不是终点,而是起点。你只要记住:
- 版本固定:Python 3.10+,别用 2.x
- 环境隔离:每个项目一个 venv
- 依赖锁定:requirements.txt 走起
- 代码可运行:脚本带命令行参数,保持简单
这些做好,后面 29 章的所有练习都能稳定跑起来。嗯,这关过了,接下来就能专心写质控逻辑了。