2. Python环境准备:Python与Anaconda安装、Jupyter Notebook配置、虚拟环境创建、常用数据质量库安装
数据质量检查脚本的运行依赖稳定、可复现的Python环境。本章将指导你完成从基础解释器安装到专业数据质量库部署的全流程,确保后续章节的代码示例能够在统一环境中正确执行。
2.1 Python解释器与Anaconda发行版
Python解释器是运行所有脚本的基础。Anaconda是一个面向数据科学的Python发行版,预装了conda包管理器、Jupyter Notebook以及超过250个常用科学计算库,是数据质量工程的首选环境。
| 对比项 | 原生Python | Anaconda发行版 |
|---|---|---|
| 安装包大小 | ~30 MB(仅解释器) | ~500 MB(含预装库) |
| 包管理器 | pip | conda + pip |
| 虚拟环境 | venv / virtualenv | conda env(原生支持) |
| 适用场景 | 轻量开发、嵌入式 | 数据科学、机器学习、质量检查 |
| 推荐版本 | Python 3.9+ | Anaconda 2024.10+(Python 3.12) |
推荐选择:本课程所有脚本均基于Anaconda环境开发和测试。如果你已安装原生Python,建议额外安装Anaconda,两者可共存,不会冲突。
2.2 安装步骤与验证
2.2.1 Anaconda安装流程
- 下载安装包:访问
https://www.anaconda.com/download,选择对应操作系统(Windows/macOS/Linux)的图形化安装程序。 - 执行安装:
- Windows:双击
.exe文件,勾选 "Add Anaconda to my PATH environment variable"(建议勾选,方便命令行调用)。 - macOS/Linux:运行
.sh文件,按提示完成安装。
- Windows:双击
- 验证安装:打开终端(Windows使用Anaconda Prompt),执行以下命令:
conda --version
# 输出示例:conda 24.9.2
python --version
# 输出示例:Python 3.12.7
常见问题:如果
conda 命令未找到,请检查环境变量是否包含 Anaconda3\Scripts 和 Anaconda3 路径。Windows用户可重新运行安装程序,选择"Repair"修复。
2.3 Jupyter Notebook配置
Jupyter Notebook是数据质量检查过程中最常用的交互式开发工具,支持代码、文档、可视化结果混排输出。
2.3.1 启动与基础配置
# 在终端中启动Jupyter Notebook
jupyter notebook
# 指定端口启动(避免端口冲突)
jupyter notebook --port 8889
# 生成配置文件(首次使用)
jupyter notebook --generate-config
启动后,浏览器会自动打开 http://localhost:8888/tree 页面。建议在根目录下创建 data_quality_course/ 文件夹,用于存放本课程的所有笔记和脚本。
2.3.2 内核管理
Jupyter Notebook支持为不同虚拟环境注册独立内核,这是多项目隔离的关键。
# 在虚拟环境中安装ipykernel
conda activate dq_env
pip install ipykernel
# 将虚拟环境注册为Jupyter内核
python -m ipykernel install --user --name dq_env --display-name "Python (dq_env)"
注册完成后,在Jupyter Notebook的 Kernel → Change kernel 菜单中即可选择对应环境。
配置检查清单:
- ✅ Jupyter Notebook能正常启动并打开浏览器页面
- ✅ 能创建新的
.ipynb文件 - ✅ 能执行简单的Python代码(如
print("Hello Data Quality")) - ✅ 已注册至少一个虚拟环境内核
2.4 虚拟环境创建
虚拟环境为每个项目提供独立的Python解释器和依赖库,避免不同项目间的包版本冲突。本课程强烈建议为数据质量检查项目创建专用虚拟环境。
2.4.1 使用conda创建虚拟环境
# 创建名为 dq_env 的环境,指定Python版本
conda create --name dq_env python=3.12
# 激活环境
conda activate dq_env
# 查看当前环境中的包列表
conda list
# 退出当前环境
conda deactivate
# 列出所有虚拟环境
conda env list
2.4.2 环境克隆与导出
当需要在多台机器上复现环境时,导出环境配置文件是最佳实践。
# 导出当前环境的包列表到YAML文件
conda env export > environment.yml
# 从YAML文件重建环境
conda env create -f environment.yml
# 仅导出显式安装的包(不含依赖)
conda list --explicit > spec-file.txt
conda create --name dq_env_clone --file spec-file.txt
团队协作建议:将
environment.yml 文件纳入版本控制(Git),确保所有团队成员使用完全一致的依赖环境,这是数据质量检查结果可复现的基础保障。
2.5 常用数据质量库安装
本课程的核心数据质量检查脚本依赖以下三个库:pandas(数据处理)、numpy(数值计算)、great_expectations(数据质量框架)。
2.5.1 库功能对比
| 库名称 | 版本要求 | 核心功能 | 在数据质量中的角色 |
|---|---|---|---|
| pandas | ≥ 2.2.0 | DataFrame操作、数据清洗、统计分析 | 加载数据、缺失值检测、重复值识别、描述性统计 |
| numpy | ≥ 1.26.0 | 多维数组、数学函数、随机数生成 | 数值计算、异常值检测(Z-score/IQR)、数组运算 |
| great_expectations | ≥ 1.0.0 | 数据质量期望定义、验证、文档生成 | 自动化质量检查、期望套件管理、数据文档生成 |
2.5.2 安装命令
确保已激活 dq_env 虚拟环境,然后执行以下命令:
# 使用conda安装(推荐,自动处理依赖)
conda install pandas numpy
# 使用pip安装great_expectations(conda源可能更新较慢)
pip install great_expectations
# 验证安装
python -c "import pandas; import numpy; import great_expectations; print('所有库安装成功')"
2.5.3 安装验证脚本
创建一个简单的验证脚本 check_env.py,确认环境配置正确:
# check_env.py
import sys
import pandas as pd
import numpy as np
import great_expectations as gx
print(f"Python版本: {sys.version}")
print(f"pandas版本: {pd.__version__}")
print(f"numpy版本: {np.__version__}")
print(f"great_expectations版本: {gx.__version__}")
# 简单功能测试
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': ['x', 'y', 'z']})
print("\nDataFrame创建成功:")
print(df)
print("\n环境配置完成,可以开始数据质量检查!")
版本兼容性注意:如果安装过程中出现依赖冲突,建议先升级pip:
pip install --upgrade pip。Great Expectations对Python 3.12的支持在1.0+版本中已完善,如遇问题可回退到Python 3.11环境。
2.6 环境架构总览
下图展示了本课程所使用的完整Python环境架构,从底层操作系统到上层数据质量检查工具的分层关系:
2.7 环境验证与常见问题排查
2.7.1 完整验证流程
完成上述所有步骤后,执行以下命令进行最终验证:
# 1. 确认虚拟环境激活
conda activate dq_env
# 2. 确认Python版本
python --version
# 期望输出:Python 3.12.x
# 3. 确认核心库可导入
python -c "import pandas; import numpy; import great_expectations; print('OK')"
# 期望输出:OK
# 4. 确认Jupyter内核可用
jupyter kernelspec list
# 期望输出中包含 dq_env
# 5. 启动Jupyter并创建测试Notebook
jupyter notebook
2.7.2 常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
conda: command not found |
环境变量未配置 | 手动添加 Anaconda3/Scripts 到PATH,或重新安装并勾选"Add to PATH" |
| Jupyter Notebook无法启动 | 端口被占用 / 配置文件损坏 | 使用 jupyter notebook --port 8889 指定端口;删除 ~/.jupyter/jupyter_notebook_config.py 后重新生成 |
| 虚拟环境内核未显示 | 未安装ipykernel或未注册 | 在虚拟环境中执行 pip install ipykernel 并重新注册 |
| great_expectations安装失败 | 依赖冲突 / Python版本不兼容 | 升级pip:pip install --upgrade pip;或使用Python 3.11创建新环境 |
| 库导入时提示DLL加载失败 | Visual C++ Redistributable缺失(Windows) | 安装 Microsoft Visual C++ Redistributable for Visual Studio 2015-2022 |
环境就绪标志:当你能够在Jupyter Notebook中成功执行以下代码并看到DataFrame输出时,说明环境已完全就绪,可以进入第3章的数据加载与初步探索。
import pandas as pd
import numpy as np
# 创建一个简单的数据质量检查示例
df = pd.DataFrame({
'id': [1, 2, 3, 4, 5],
'value': [10.5, 20.3, np.nan, 40.1, 50.7],
'category': ['A', 'B', 'A', 'C', 'B']
})
print("数据加载成功,形状:", df.shape)
print(df.describe())