第2章 Python开发环境搭建:Anaconda安装与虚拟环境管理
要开始批次质控,先把开发环境搭好。我见过不少新手在环境问题上卡一整天,其实没那么复杂。这一章我带你走一遍完整流程——从Anaconda安装,到虚拟环境管理,再到Jupyter Notebook和VSCode的配置,最后把常用的质控库装上去验证一下。
2.1 Anaconda安装与初始配置
我个人习惯用Anaconda来管理Python环境,尤其在做数据分析的时候。它自带conda包管理器和大量常用科学计算库,省去很多手动编译的麻烦。我曾经在Linux服务器上手动装NumPy,结果折腾了两个小时,后来直接用conda,两分钟搞定。
下载与安装
去Anaconda官网(或者清华镜像)下载对应操作系统的安装包。Windows下记得勾选“Add Anaconda to my PATH environment variable”,否则后面命令行找不到conda。嗯,这一步很多人会漏掉。
# 验证安装
conda --version
# 输出示例:conda 24.1.2
# 更新conda
conda update conda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
2.2 虚拟环境管理
做项目最怕什么?依赖冲突。A项目要pandas 1.0,B项目要pandas 2.0,全装在base环境里迟早要崩。虚拟环境就是给每个项目一个独立的小隔间。
创建虚拟环境
# 创建名为qc_env的环境,指定Python版本3.10
conda create -n qc_env python=3.10 -y
# 激活环境
conda activate qc_env
# 退出环境
conda deactivate
复制与删除环境
# 复制环境(常用于迁移)
conda create -n new_env --clone old_env
# 删除环境
conda remove -n qc_env --all
# 列出所有环境
conda env list
我记得有一次不小心执行了conda remove --all,差点把base环境删了。后来我在~/.condarc里加了always_yes: false,强制确认。你想想看,一个确认能救你一条命。
2.3 环境导出与复现
你做完了项目,别人要复现,怎么办?导出环境文件。这是团队协作的标配。
# 导出当前环境的包列表
conda env export > environment.yml
# 从yml文件重建环境
conda env create -f environment.yml
# 仅导出显式安装的包(推荐)
conda list --explicit > spec-file.txt
conda create --name new_env --file spec-file.txt
我一般用--explicit的方式导出,因为跨平台时依赖更稳定。如果你用env export,里面带了很多系统级别的包,换台机器可能装不上。
2.4 Jupyter Notebook配置
Jupyter Notebook是数据探索的神器。但默认它用的是base环境的kernel,你得手动注册虚拟环境。
安装与注册
# 先激活目标环境
conda activate qc_env
# 安装ipykernel
conda install ipykernel -y
# 注册内核
python -m ipykernel install --user --name qc_env --display-name "Python (qc_env)"
# 验证内核列表
jupyter kernelspec list
打开Jupyter Notebook后,在右上角选择“Python (qc_env)”内核,就能用你虚拟环境里的包了。这也是一个容易踩坑的地方——很多人安装了包,但在Jupyter里import报错,一看内核选错了。
# 安装jupyter_contrib_nbextensions
conda activate qc_env
conda install -c conda-forge jupyter_contrib_nbextensions -y
jupyter contrib nbextension install --user
然后在Jupyter里启用“Hinterland”(自动补全)和“Collapsible Headings”。
2.5 VSCode配置
Jupyter适合快速探索,VSCode适合写正式脚本和调试。我两者都装,但日常编码主要在VSCode里。
必备插件
| 插件名 | 作用 |
|---|---|
| Python | 语法高亮、IntelliSense、调试器 |
| Jupyter | 直接在VSCode里打开.ipynb文件 |
| Pylance | 更快的类型检查 |
| GitLens | 代码版本管理增强 |
选择Python解释器
打开命令面板(Ctrl+Shift+P),输入“Python: Select Interpreter”,选择你创建的虚拟环境qc_env。VSCode会记住这个设置。
设置工作区配置文件
我习惯在每个项目根目录放一个.vscode/settings.json,固定解释器路径,避免不同项目串环境。
{
"python.defaultInterpreterPath": "C:\\Users\\...\\Anaconda3\\envs\\qc_env\\python.exe",
"python.terminal.activateEnvironment": true,
"python.formatting.provider": "black",
"editor.formatOnSave": true
}
python.terminal.activateEnvironment是否设为true。另外,如果使用PowerShell,可能需要先执行Set-ExecutionPolicy RemoteSigned。
2.6 常用质控库的安装与验证
终于到了装库的环节。我们批次质控常用的库有这几个:
| 库名 | 用途 | 安装命令 |
|---|---|---|
| pandas | 数据处理,表格操作 | conda install pandas -y |
| numpy | 数值计算,数组运算 | conda install numpy -y |
| matplotlib | 绘图,质量控制图 | conda install matplotlib -y |
| scipy | 统计检验,分布拟合 | conda install scipy -y |
| scikit-learn | 模型评估,异常检测 | conda install scikit-learn -y |
| openpyxl | 读写Excel文件 | conda install openpyxl -y |
安装命令统一使用conda,因为conda会自动处理底层依赖(比如BLAS、MKL)。如果你用pip,有时候会装到Intel MKL之外,性能差不少。我个人习惯:先conda install,如果conda找不到再用pip。
# 一键安装所有
conda install pandas numpy matplotlib scipy scikit-learn openpyxl -y
# 验证安装
python -c "import pandas; print(pandas.__version__); import numpy; print(numpy.__version__); import matplotlib; print(matplotlib.__version__); import scipy; print(scipy.__version__); import sklearn; print(sklearn.__version__); import openpyxl; print(openpyxl.__version__)"
执行上面的验证命令,如果全部输出版本号,说明环境搭建成功。我曾经帮一个学员排查,发现他装的是Python 3.12,但某个库只支持到3.11,折腾半天。所以创建环境时指定Python版本很重要,3.10以上建议用3.10或3.11,兼容性最好。
import numpy as np
import matplotlib.pyplot as plt
# 生成模拟批次数据
batch = np.random.normal(100, 2, 30)
# 计算均值上下控制限
mean = np.mean(batch)
ucl = mean + 3 * np.std(batch)
lcl = mean - 3 * np.std(batch)
# 画控制图
plt.figure(figsize=(8,4))
plt.plot(batch, 'bo-', label='batch value')
plt.axhline(mean, color='g', linestyle='--', label='mean')
plt.axhline(ucl, color='r', linestyle='--', label='UCL')
plt.axhline(lcl, color='r', linestyle='--', label='LCL')
plt.title('Batch QC Control Chart')
plt.legend()
plt.show()
如果出现一张带有控制限的折线图,那就齐活了。
2.7 知识体系总览
下面这张图总结了本章的完整流程,从Anaconda到项目环境,一条线串起来:
2.8 本章小结
环境搭建是开始质控项目的第一步,也是后面所有代码的基础。我把关键动作列出来,你对照检查:
- ✅ 安装Anaconda并配置镜像源
- ✅ 创建项目专用的虚拟环境(Python 3.10)
- ✅ 安装6个核心质控库并验证版本
- ✅ 注册Jupyter Notebook内核,实现环境隔离
- ✅ VSCode中指定解释器,配置自动格式化
如果上面这些都没问题,那你的开发环境就准备好了。后面的章节,我们直接用这个环境跑质量控制代码。嗯,开始动手吧!