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 创建虚拟环境
虚拟环境隔离项目依赖,避免与系统全局包冲突。以下为完整操作步骤:
- 创建项目目录:
mkdir loan_prediction && cd loan_prediction - 创建虚拟环境:
python3 -m venv venv - 激活环境:
- Linux/macOS:
source venv/bin/activate - Windows:
venv\Scripts\activate
- Linux/macOS:
- 验证激活:
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 工具链架构总览
下图展示了从本地开发到容器化部署的完整工具链关系:
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脚本一键确认所有工具链就绪