3. 操作系统与基础工具
智能寻源算法的开发与测试依赖稳定的底层环境。本章将系统讲解操作系统选型、双平台环境准备、核心语言运行时安装以及版本控制与容器化工具的初始化配置。所有步骤均经过供应链算法团队的实测验证,确保后续品类策略模块能够无缝集成。
3.1 操作系统环境准备
推荐使用 Ubuntu 22.04 LTS 作为主要开发操作系统,Windows 11 专业版作为辅助测试平台。以下为双平台关键环境对比:
| 配置项 | Linux (Ubuntu 22.04) | Windows 11 |
|---|---|---|
| 内核版本 | 5.15 LTS | 10.0.22621 |
| 包管理器 | apt / snap | winget / chocolatey |
| 文件系统 | ext4 (推荐) | NTFS |
| Shell | bash 5.1 | PowerShell 7.3 / WSL2 |
| 资源限制 | ulimit 可调 | 任务管理器 / 组策略 |
选型建议: 若团队使用 MacOS,可通过 Docker Desktop 保持环境一致性;但本课程所有脚本与配置均以 Linux 为第一优先级,Windows 用户请务必启用 WSL2。
3.1.1 Linux 基础环境初始化
# 更新系统包索引并安装基础编译工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential curl wget vim net-tools
# 配置时区与语言环境
sudo timedatectl set-timezone Asia/Shanghai
sudo locale-gen zh_CN.UTF-8
export LANG=zh_CN.UTF-8
3.1.2 Windows 环境准备要点
- 启用 WSL2: 以管理员身份运行 PowerShell,执行
wsl --install -d Ubuntu-22.04。 - 安装 Windows Terminal: 从 Microsoft Store 获取,提升多标签管理效率。
- 配置环境变量: 将
%USERPROFILE%\bin加入 PATH,用于存放自定义脚本。
避坑提示: Windows 路径分隔符为反斜杠
\,在 Python 字符串中需转义或使用原始字符串 r"..."。建议在 WSL2 内统一使用 Linux 路径风格。
3.2 Python 运行环境安装
智能寻源算法核心使用 Python 3.10+,依赖管理采用 poetry 与 conda 双轨制。以下为安装步骤:
3.2.1 Linux 下安装 Python 3.10
# 通过 deadsnakes PPA 安装
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install -y python3.10 python3.10-dev python3.10-venv
# 验证安装
python3.10 --version
# 输出: Python 3.10.12
3.2.2 配置虚拟环境与包管理器
# 安装 pip 与 poetry
python3.10 -m ensurepip --upgrade
pip3 install --user poetry==1.8.2
# 创建项目虚拟环境
poetry new sourcing_algorithm
cd sourcing_algorithm
poetry env use python3.10
poetry install
| 工具 | 用途 | 配置文件 |
|---|---|---|
| poetry | 依赖解析与打包 | pyproject.toml |
| conda | 科学计算环境隔离 | environment.yml |
| pip | 临时包安装 | requirements.txt |
关键依赖清单: numpy==1.26.2、pandas==2.1.4、scikit-learn==1.3.2、pytest==7.4.3、black==23.12.0。后续品类策略模块将在此基础上扩展。
3.3 Java 运行环境安装
部分寻源算法中的规则引擎与微服务网关采用 Java 17 (LTS)。推荐使用 OpenJDK 发行版。
3.3.1 Linux 安装 OpenJDK 17
# 使用 apt 直接安装
sudo apt install -y openjdk-17-jdk openjdk-17-jre
# 设置 JAVA_HOME
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
# 验证
java --version
# 输出: openjdk 17.0.9 2023-10-17
3.3.2 Windows 安装与配置
- 从 Adoptium 下载 MSI 安装包,选择 jdk-17.0.9+9。
- 安装后手动添加系统环境变量
JAVA_HOME指向C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot。 - 将
%JAVA_HOME%\bin加入Path。
版本兼容性: 品类策略模块中的 Drools 规则引擎要求 Java 17+,请勿使用 Java 8 或 11 运行生产级测试。
3.4 Git 基础配置
版本控制是算法迭代的基石。以下为团队统一配置标准:
# 全局用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@company.com"
# 推荐别名与行为
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global core.autocrlf input # Linux/Mac
git config --global core.editor vim
3.4.1 仓库初始化与分支策略
- 主分支:
main保护,禁止直接推送。 - 开发分支:
dev用于日常集成。 - 特性分支:
feature/品类策略-xxx命名规范。
# 克隆课程仓库
git clone git@github.com:company/sourcing-algorithm-course.git
cd sourcing-algorithm-course
git checkout -b feature/env-setup
安全提醒: 禁止将
.env、config/local.yaml 等敏感文件提交到仓库。请在项目根目录创建 .gitignore 并添加 *.log、__pycache__/、.idea/。
3.5 Docker 基础配置
容器化确保寻源算法在开发、测试、生产环境的行为一致。本课程使用 Docker Engine 24.0 + Docker Compose v2。
3.5.1 Linux 安装 Docker
# 卸载旧版本
sudo apt remove docker docker-engine docker.io containerd runc
# 使用官方脚本安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将当前用户加入 docker 组(避免每次 sudo)
sudo usermod -aG docker $USER
newgrp docker
# 验证
docker --version
# Docker version 24.0.7, build afdd53b
3.5.2 Docker Compose 配置
# 安装 Compose v2 插件
sudo apt install -y docker-compose-plugin
# 验证
docker compose version
# Docker Compose version v2.23.0
3.5.3 基础镜像与网络规划
为品类策略模块准备以下 Docker 镜像:
| 镜像名称 | 标签 | 用途 |
|---|---|---|
| python | 3.10-slim | 算法引擎基础镜像 |
| openjdk | 17-slim | 规则引擎容器 |
| postgres | 16-alpine | 品类数据存储 |
| redis | 7.2-alpine | 缓存与队列 |
# 拉取基础镜像
docker pull python:3.10-slim
docker pull openjdk:17-slim
docker pull postgres:16-alpine
docker pull redis:7.2-alpine
# 创建共享网络
docker network create sourcing-net
测试验证: 执行
docker run --rm hello-world 确认 Docker 守护进程正常运行。后续章节将基于此网络搭建完整的寻源算法测试集群。
3.6 环境验证清单
完成上述安装后,请逐项确认以下检查点:
- Python:
python3.10 -c "import numpy; print(numpy.__version__)"输出 1.26.2。 - Java:
javac -version输出javac 17.0.9。 - Git:
git config --global --list包含 user.name 与 user.email。 - Docker:
docker info | grep "Server Version"显示 24.0.x。 - 网络:
docker network inspect sourcing-net返回正常 JSON。
自动化脚本: 课程仓库
scripts/check_env.sh 提供一键验证,运行 bash check_env.sh 即可输出通过/失败状态。
3.7 常见问题与排错
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
docker: permission denied |
用户未加入 docker 组 | sudo usermod -aG docker $USER 并重新登录 |
poetry: command not found |
用户 bin 目录未在 PATH 中 | 添加 export PATH="$HOME/.local/bin:$PATH" 到 ~/.bashrc |
Java: 无法加载主类 |
JAVA_HOME 未正确设置 | 检查 echo $JAVA_HOME 是否指向 JDK 根目录 |
git: 推送被拒绝 |
分支受保护或 SSH 密钥未配置 | 使用 ssh-keygen -t ed25519 生成密钥并添加到 GitLab/GitHub |