3. 开发环境搭建:Python 3.11+、Anaconda虚拟环境、Git版本控制、Docker Desktop安装与配置
供应链计划系统的仿真工程落地,依赖一套标准化的本地开发环境。本章将引导你完成从Python解释器、虚拟环境管理、版本控制到容器化运行环境的全链路搭建。所有工具版本均经过兼容性验证,确保后续章节的仿真模型与调度引擎能够无冲突运行。
3.1 环境全景与版本依赖
在开始安装前,先明确各组件在仿真工程中的角色与推荐版本。下表列出了核心工具链及其用途:
| 组件 | 推荐版本 | 工程角色 | 关键依赖 |
|---|---|---|---|
| Python | 3.11.x | 仿真引擎、数据处理、算法实现 | numpy, pandas, simpy, ortools |
| Anaconda | 2024.10+ | 虚拟环境隔离、包管理、Jupyter集成 | conda 24.x |
| Git | 2.40+ | 代码版本控制、分支策略、协作基线 | Git LFS (大文件存储) |
| Docker Desktop | 4.30+ | 容器化部署、环境一致性、CI/CD流水线 | WSL2 (Windows) / HyperKit (macOS) |
3.2 Python 3.11+ 安装与验证
Python 是仿真模型的核心运行环境。推荐从 python.org 下载官方安装包,安装时务必勾选 "Add Python to PATH"。
安装完成后,打开终端(Windows 使用 PowerShell 或 CMD,macOS/Linux 使用 bash)执行验证:
# 验证 Python 版本
python --version
# 输出示例:Python 3.11.9
# 验证 pip 包管理器
pip --version
# 输出示例:pip 24.2 from ... (python 3.11)
# 测试基础数学库
python -c "import math; print(math.pi)"
# 输出:3.141592653589793
C:\Users\用户名\AppData\Local\Programs\Python\Python311\),并将其上移至系统变量首位。
3.3 Anaconda 虚拟环境配置
Anaconda 提供隔离的 Python 环境,避免不同项目间的包冲突。对于供应链仿真项目,建议为每个仿真场景创建独立环境。
3.3.1 安装 Anaconda
从 anaconda.com/download 下载对应操作系统的图形化安装包。安装过程中保持默认选项,但建议取消勾选 "Add Anaconda to my PATH environment variable"(避免与系统 Python 冲突),后续通过 Anaconda Prompt 或初始化 conda 命令使用。
3.3.2 创建仿真专用虚拟环境
打开终端(或 Anaconda Prompt),执行以下命令创建名为 scm_sim 的环境,指定 Python 3.11:
# 创建虚拟环境
conda create -n scm_sim python=3.11 -y
# 激活环境
conda activate scm_sim
# 验证环境内 Python 版本
python --version
# 输出:Python 3.11.9
# 安装核心仿真依赖
pip install numpy==1.26.4 pandas==2.2.2 simpy==4.1.1 ortools==9.10.4067 matplotlib==3.9.1
# 导出环境配置(用于团队共享)
conda env export > environment.yml
环境配置文件 environment.yml 的内容示例如下:
name: scm_sim
channels:
- defaults
dependencies:
- python=3.11.9
- pip
- pip:
- numpy==1.26.4
- pandas==2.2.2
- simpy==4.1.1
- ortools==9.10.4067
- matplotlib==3.9.1
environment.yml 纳入 Git 版本管理。新成员克隆仓库后,只需执行 conda env create -f environment.yml 即可复现完全一致的仿真环境。
3.4 Git 版本控制初始化
Git 用于追踪仿真模型的每一次变更,支持分支开发与回滚。以下是供应链仿真项目的标准 Git 初始化流程。
3.4.1 安装与全局配置
# 安装 Git(macOS: brew install git; Ubuntu: sudo apt install git; Windows: 下载安装包)
# 验证安装
git --version
# 输出:git version 2.45.2
# 配置用户名和邮箱(用于提交记录)
git config --global user.name "Your Name"
git config --global user.email "your.email@company.com"
# 配置默认分支名为 main
git config --global init.defaultBranch main
# 配置换行符自动转换(跨平台协作)
git config --global core.autocrlf input # macOS/Linux
# git config --global core.autocrlf true # Windows
3.4.2 初始化仿真项目仓库
# 创建项目目录
mkdir scm-simulation-lab
cd scm-simulation-lab
# 初始化 Git 仓库
git init
# 创建 .gitignore 文件(排除虚拟环境和临时文件)
echo "env/" >> .gitignore
echo "__pycache__/" >> .gitignore
echo "*.pyc" >> .gitignore
echo ".DS_Store" >> .gitignore
echo "*.log" >> .gitignore
# 创建标准目录结构
mkdir -p src/simulations src/optimization data/input data/output docs tests
# 首次提交
git add .
git commit -m "chore: 初始化供应链仿真项目结构"
下图展示了仿真项目的标准 Git 分支策略与目录结构:
3.5 Docker Desktop 安装与容器化配置
Docker 将仿真环境打包为轻量级容器,确保在开发、测试、生产环境中的行为完全一致。对于供应链计划系统,Docker 用于部署仿真调度引擎和 API 服务。
3.5.1 安装 Docker Desktop
根据操作系统选择安装方式:
- Windows: 下载 Docker Desktop for Windows,安装时启用 WSL 2 后端。安装完成后在 PowerShell 执行
wsl --set-default-version 2。 - macOS: 下载 Docker Desktop for Mac (Apple Silicon 或 Intel 版本)。安装后可在菜单栏看到 Docker 图标。
- Linux: 通过包管理器安装 docker-ce 和 docker-compose-plugin,然后启动服务
sudo systemctl start docker。
3.5.2 验证 Docker 环境
# 验证 Docker 版本
docker --version
# 输出:Docker version 26.1.4, build 5650f9b
# 验证 Docker Compose
docker compose version
# 输出:Docker Compose version v2.29.2
# 运行测试容器
docker run hello-world
# 输出:Hello from Docker! ...(表示安装成功)
3.5.3 创建仿真服务的 Dockerfile
以下 Dockerfile 将仿真环境打包为容器镜像,包含所有 Python 依赖:
# 使用 Python 3.11 官方镜像
FROM python:3.11-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件
COPY requirements.txt .
# 安装 Python 依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制仿真代码
COPY src/ ./src/
COPY data/ ./data/
# 暴露仿真 API 端口
EXPOSE 8000
# 默认启动命令
CMD ["python", "src/main.py"]
对应的 requirements.txt 文件内容:
numpy==1.26.4
pandas==2.2.2
simpy==4.1.1
ortools==9.10.4067
fastapi==0.115.0
uvicorn==0.30.6
3.5.4 使用 Docker Compose 编排多服务
对于包含仿真引擎、数据库、消息队列的复杂场景,使用 docker-compose.yml 统一管理:
version: '3.8'
services:
simulation-engine:
build: .
ports:
- "8000:8000"
volumes:
- ./data:/app/data
environment:
- PYTHONUNBUFFERED=1
depends_on:
- redis-cache
redis-cache:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis-data:/data
volumes:
redis-data:
docker compose up --build 启动服务。每次修改代码后,Docker 会利用层缓存加速构建。生产部署时,建议使用 docker compose up -d 后台运行。
3.6 环境验证清单
完成上述安装后,执行以下验证脚本,确保所有组件协同工作:
# 验证脚本:check_env.py
import sys
import numpy as np
import pandas as pd
import simpy
from ortools.sat.python import cp_model
print(f"Python 版本: {sys.version}")
print(f"NumPy 版本: {np.__version__}")
print(f"Pandas 版本: {pd.__version__}")
print(f"SimPy 版本: {simpy.__version__}")
# 简单仿真测试
def simple_simulation():
env = simpy.Environment()
def process(env):
yield env.timeout(5)
env.process(process(env))
env.run()
print("SimPy 仿真引擎: 运行正常")
simple_simulation()
# OR-Tools 求解器测试
model = cp_model.CpModel()
x = model.NewIntVar(0, 10, 'x')
model.Add(x > 5)
solver = cp_model.CpSolver()
status = solver.Solve(model)
print(f"OR-Tools 求解器: {'正常' if status == cp_model.OPTIMAL else '异常'}")
执行 python check_env.py,若所有组件输出正常,则开发环境搭建完成。
ortools 而非 or-tools。若 SimPy 版本低于 4.1,请执行 pip install --upgrade simpy。Docker 容器内若无法连接 Redis,检查 docker compose 网络配置中的服务名是否正确。
3.7 本章小结
本章完成了供应链仿真系统的完整开发环境搭建:
- Python 3.11+ 作为仿真与优化引擎的运行基础。
- Anaconda 虚拟环境 实现项目级依赖隔离,通过
environment.yml支持团队复现。 - Git 版本控制 建立分支策略与标准目录结构,保障代码可追溯。
- Docker Desktop 提供容器化运行环境,确保开发与生产环境一致。