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。但真正重要的是“锁定依赖版本”——否则别人一拉代码,装到的版本可能跟你不一样,跑起来就报错。

我的标准流程:

  1. 激活虚拟环境
  2. pip install 包名==版本号(显式指定版本)
  3. 开发完执行 pip freeze > requirements.txt
  4. 把这个文件放进 Git

别人拿到项目后,只需:

python -m venv .venv
source .venv/bin/activate   # 或 Windows 命令
pip install -r requirements.txt

这样就实现了“环境一致性”。

1.6 知识体系全景图

下面这张图我把核心概念串起来了——你大概看一眼,就知道整个环境搭建的骨架长什么样。

Python 开发环境搭建知识结构 Python 解释器 虚拟环境 包管理器 IDE / 编辑器 依赖锁定 批处理脚本 解释器隔离 + 虚拟环境独立 + 包管理器 + 依赖锁定 最终得到可复现的批处理质控环境

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 章的所有练习都能稳定跑起来。嗯,这关过了,接下来就能专心写质控逻辑了。