环境搭建:把工具箱备齐

说实话,很多自动化流程跑不起来,不是逻辑写错了,是环境没搭好。我以前带团队时就遇到过——新人花两天配环境,结果依赖冲突,项目都启动不了。所以这一章,我们先老老实实把地基打牢。

我会带你把三个核心部分配好:Python环境、数据库、以及核心依赖库。弄完这些,后面的批处理脚本才能稳稳跑起来。

Python环境选择与安装

我个人的习惯,永远先用虚拟环境。为什么?你想想看,不同项目可能依赖不同版本的 pandas,混在一起迟早出问题。

推荐用 Python 3.9 以上,我目前用 3.10。版本太老有些新语法不支持,太新又可能个别库没适配。

我的推荐组合:

  • Python 3.10 + venv 或 conda
  • 一个干净的虚拟环境专用于本项目

创建虚拟环境的命令很简单:

python -m venv qc_env
source qc_env/bin/activate  # Linux/Mac
qc_env\Scripts\activate     # Windows

看到命令行前出现 (qc_env),就说明环境已经激活了。嗯,这里要注意一点:每次打开新终端都要重新激活。我一开始老忘,后来写了个小脚本自动激活。

小技巧:把虚拟环境的路径加到 .gitignore 里,别提交到代码仓库。否则小伙伴拉下来还得删了重建。

数据库选型:SQLite 还是 PostgreSQL?

做批量质控,你得有个地方存结果。我个人通常这样选:

  • 开发测试阶段:用 SQLite,零配置,文件即数据库
  • 生产部署阶段:用 PostgreSQL,支持并发,性能更好

下面这张表可以帮你快速对比:

特性 SQLite PostgreSQL
安装复杂度 无需安装 需要安装服务
并发写入 弱(单写) 强(多写)
适合场景 单机/小批量 团队/大批量
数据量上限 约 140TB(理论) 几乎无限

我在项目中遇到过这种情况:用 SQLite 本地测得好好的,一上服务器就报数据库锁。后来换成 PostgreSQL 才解决。所以生产环境别犹豫,直接上 PostgreSQL。

安装 PostgreSQL 也很简单,Ubuntu 下一条命令:

sudo apt update
sudo apt install postgresql postgresql-contrib

然后创建一个数据库给我们的质控项目用:

sudo -u postgres psql -c "CREATE USER qc_user WITH PASSWORD 'your_password';"
sudo -u postgres psql -c "CREATE DATABASE batch_qc OWNER qc_user;"

注意:千万别把密码写在代码里。我习惯用环境变量或者 .env 文件加载。

核心依赖库安装

批量质控流程离不开几个关键库。我把它们整理成一份 requirements.txt,一条命令装完。

必备库清单

库名 版本建议 用途
pandas ≥1.5.0 数据读取、清洗、统计
sqlalchemy ≥2.0.0 数据库 ORM 操作
psycopg2-binary ≥2.9.0 PostgreSQL 驱动
openpyxl ≥3.0.0 Excel 读写(可选)
numpy ≥1.24.0 数值计算

创建 requirements.txt 文件,写入以下内容:

pandas>=1.5.0
sqlalchemy>=2.0.0
psycopg2-binary>=2.9.0
openpyxl>=3.0.0
numpy>=1.24.0

然后一键安装:

pip install -r requirements.txt

看看安装结果。如果出现红色报错,八成是某个库的依赖冲突。我踩过的坑是 pandas 和 numpy 版本不匹配,解决办法是升级 numpy 到最新版。

验证环境是否就绪

环境搭好没,跑个简单脚本试试看:

import pandas as pd
import sqlalchemy
import psycopg2

print(f"pandas version: {pd.__version__}")
print(f"sqlalchemy version: {sqlalchemy.__version__}")
print(f"psycopg2 module: {psycopg2.__name__}")

# 试连一下 SQLite
engine = sqlalchemy.create_engine('sqlite:///test.db')
engine.connect()
print("数据库连接成功!")

如果能正常打印版本号,而且最后显示 "数据库连接成功!",那恭喜你,环境算是搭好了。

一张图看懂本章知识体系

我把这一章的内容画成了一张流程图,方便你理解整体结构:

第三章 环境搭建知识体系 环境搭建三大模块 Python 环境 数据库 依赖库 venv 虚拟环境 Python 3.10 SQLite PostgreSQL pandas sqlalchemy 开发测试用 SQLite,生产部署用 PostgreSQL 依赖库通过 requirements.txt 统一管理 最后:运行验证脚本检查全部就绪

常见问题与避坑

环境搭建过程中,你可能会遇到几个小问题。我帮你总结了一下:

常见的坑:

  • 虚拟环境装了,但 IDE 没选对环境 —— 检查右下角 Python 解释器路径
  • PostgreSQL 连不上 —— 多半是没启动服务,sudo systemctl start postgresql
  • pandas 读取大文件慢 —— 别慌,后面章节会讲分批读取的优化方法

我记得有一次,一个同事花了一整天都没装好 psycopg2。原因是系统缺少 libpq-dev 库。解决办法:

sudo apt install libpq-dev

装完再 pip install,瞬间就好了。所以遇到编译报错,先看看是不是缺系统依赖。

一个小建议:每次装完依赖,跑一遍 pip freeze > requirements.txt 把精确版本号记下来。这样部署到服务器时就不会出现版本漂移的问题。

好,环境搭好了。接下来你就可以放心写代码了。记住,环境稳定是自动化流程跑得顺利的前提,别在这步省时间。