2. 环境准备与工具链安装

本章将搭建完整的本地开发环境,涵盖 Python 版本管理、虚拟环境隔离、核心依赖安装以及容器化工具配置。正确的环境准备能避免后续开发中的依赖冲突与部署问题。

2.1 Python 版本与环境管理

推荐使用 Python 3.10+(3.10 至 3.12 均可),该版本对 scikit-learn 1.3+ 和 Flask 2.3+ 支持最佳。避免使用 Python 3.7 以下版本(已停止安全更新)或 Python 3.13(部分库尚未适配)。

工具 推荐版本 用途
Python 3.10 ~ 3.12 运行时基础
pip ≥ 23.0 包管理器
venv 内置模块 虚拟环境创建
Docker ≥ 24.0 容器化部署

2.2 创建虚拟环境

虚拟环境隔离项目依赖,避免与系统全局包冲突。以下为完整操作步骤:

  1. 创建项目目录:mkdir loan_prediction && cd loan_prediction
  2. 创建虚拟环境:python3 -m venv venv
  3. 激活环境:
    • Linux/macOS:source venv/bin/activate
    • Windows:venv\Scripts\activate
  4. 验证激活:which python 应指向项目目录下的 venv 路径
💡 提示:激活后终端提示符会显示 (venv) 前缀。退出环境使用 deactivate 命令。

2.3 必备库安装

将以下依赖写入 requirements.txt 文件,然后执行批量安装:

# requirements.txt
pandas==2.1.4
scikit-learn==1.3.2
flask==3.0.0
gunicorn==21.2.0
joblib==1.3.2
docker==7.0.0

安装命令:

pip install -r requirements.txt
库名 版本 在课程中的角色
pandas 2.1.4 数据清洗与特征工程
scikit-learn 1.3.2 模型训练与评估
flask 3.0.0 REST API 服务框架
gunicorn 21.2.0 生产级 WSGI 服务器
joblib 1.3.2 模型序列化与加载
docker 7.0.0 Docker SDK 与镜像构建

2.4 工具链架构总览

下图展示了从本地开发到容器化部署的完整工具链关系:

逾期预测模型工具链架构 Python 3.10+ venv 虚拟环境 pandas 数据清洗与特征工程 scikit-learn 模型训练与评估 Flask + Gunicorn REST API 服务 joblib 模型序列化与加载 Docker 容器镜像构建与发布 本地开发 → 模型训练 → API 封装 → 容器化部署,形成完整交付链路 所有工具均通过 pip 安装,Docker 需单独下载安装包

2.5 Docker 环境验证

Docker 用于将模型 API 打包为独立容器,确保在任何服务器上一致运行。安装后执行以下验证:

# 检查 Docker 版本
docker --version

# 检查 Docker 守护进程是否运行
docker info

# 拉取测试镜像验证网络
docker pull hello-world
docker run hello-world
⚠️ 常见问题:
  • Linux 用户需将当前用户加入 docker 用户组:sudo usermod -aG docker $USER,然后重新登录。
  • Windows/macOS 用户请使用 Docker Desktop,并确保 WSL2(Windows)或 HyperKit(macOS)后端已启用。
  • 如果 docker info 报权限错误,尝试 sudo docker info 确认问题来源。

2.6 环境验证脚本

创建 check_env.py 文件,一键验证所有依赖是否就绪:

# check_env.py
import sys
import subprocess

required_packages = ['pandas', 'sklearn', 'flask', 'joblib', 'docker']

print(f"Python 版本: {sys.version}")
print()

for pkg in required_packages:
    try:
        mod = __import__(pkg.replace('sklearn', 'sklearn'))
        version = getattr(mod, '__version__', 'unknown')
        print(f"✅ {pkg:15s} 版本: {version}")
    except ImportError:
        print(f"❌ {pkg:15s} 未安装")

# 检查 Docker CLI
try:
    result = subprocess.run(['docker', '--version'], capture_output=True, text=True)
    print(f"✅ {'docker':15s} 版本: {result.stdout.strip()}")
except FileNotFoundError:
    print(f"❌ {'docker':15s} 未找到,请安装 Docker")

运行命令:python check_env.py,所有依赖显示 ✅ 即表示环境准备完成。

📌 本章要点:
  • 使用 Python 3.10~3.12 + venv 创建隔离环境
  • 通过 requirements.txt 批量安装 pandas、scikit-learn、Flask、gunicorn、joblib、docker
  • Docker 需单独安装并验证守护进程运行状态
  • 使用 check_env.py 脚本一键确认所有工具链就绪