3. 开发环境搭建:打好地基才能盖高楼

说实话,我见过太多项目死在环境搭建这一步。不是代码写不出来,而是环境配了一周还没跑通。咱们做数字孪生储能仿真,底层环境就是地基。地基不稳,后面全是坑。

这一章,我带你一步步把操作系统、Python/Node.js、Docker、Git 全部搞定。嗯,跟着我的节奏来,别跳步。

开发环境搭建 操作系统配置 Python/Node.js Docker 部署 Git 版本控制 Ubuntu 22.04 LTS 内核参数调优 时区/语言/SSH Python 3.10+ / Node 18+ 虚拟环境 / nvm pip / npm 镜像源 Docker Engine + Compose 镜像加速 / 卷挂载 docker-compose.yml git init / .gitignore 分支策略 / 提交规范

3.1 操作系统配置:选对系统,少走弯路

我个人习惯用 Ubuntu 22.04 LTS 作为开发机。为什么?因为 Docker 在 Linux 上跑得最顺,而且储能仿真涉及的大量底层库(比如 libmodbus、socketCAN)在 Ubuntu 上几乎都是 apt-get 一键搞定。

如果你用的是 Windows,我建议装个 WSL2。我在项目中遇到过有人直接在 Windows 上跑仿真,结果串口通信延迟高得离谱,排查了两天才发现是驱动层的问题。换成 WSL2 后,问题直接消失。

系统初始化清单:

  • 更新软件源:sudo apt update && sudo apt upgrade -y
  • 安装基础工具:sudo apt install build-essential curl wget git vim net-tools -y
  • 配置时区:sudo timedatectl set-timezone Asia/Shanghai
  • 开启 SSH 服务:sudo systemctl enable ssh && sudo systemctl start ssh

小技巧: 我习惯把 ~/.bashrc 里加上 alias ll='ls -alF'alias ..='cd ..'。别看这不起眼,每天能省下几十次按键。

3.2 Python 环境安装:虚拟环境是底线

Python 版本我推荐 3.10 或 3.11。3.12 虽然新,但有些储能相关的库(比如 pymodbus、opcua-asyncio)还没完全适配。你想想看,仿真跑着跑着突然报个 ImportError,多闹心。

安装方式很简单:

# 安装 Python 3.10
sudo apt install python3.10 python3.10-venv python3.10-dev -y

# 安装 pip
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

# 配置国内镜像源(加速下载)
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
EOF

警告: 千万不要在系统级 Python 里直接 pip install!我曾经有一次把系统自带的 Python 库搞坏了,结果 Ubuntu 的桌面环境都启动不了。老老实实用虚拟环境:

python3.10 -m venv venv
source venv/bin/activate

3.3 Node.js 环境安装:版本管理用 nvm

Node.js 主要用于前端界面和部分实时通信模块。我建议用 nvm 管理版本,而不是直接装系统包。为什么?因为项目可能同时需要 Node 16 和 Node 18,nvm 可以随时切换。

# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# 重新加载 shell 配置
source ~/.bashrc

# 安装 Node.js 18 LTS
nvm install 18
nvm use 18
node -v  # 确认版本

避坑指南: 我曾经在 CI/CD 流水线上遇到过 npm 安装超时的问题。后来统一配置了淘宝镜像源,世界清净了:

npm config set registry https://registry.npmmirror.com

3.4 Docker 容器化部署:一次构建,到处运行

Docker 是咱们这个平台的核心。储能仿真涉及多个服务——数据采集、模型计算、前端展示、数据库。用 Docker Compose 一键启动所有服务,比手动一个个启动靠谱一百倍。

安装步骤:

# 安装 Docker Engine
curl -fsSL https://get.docker.com | bash

# 将当前用户加入 docker 组(避免每次 sudo)
sudo usermod -aG docker $USER

# 安装 Docker Compose(独立二进制)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 配置镜像加速器
sudo mkdir -p /etc/docker
cat | sudo tee /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl restart docker

项目初期 Docker Compose 模板:

version: '3.8'
services:
  influxdb:
    image: influxdb:2.7
    ports:
      - "8086:8086"
    volumes:
      - ./data/influxdb:/var/lib/influxdb2

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

  simulator:
    build: ./simulator
    depends_on:
      - influxdb
      - redis
    environment:
      - SIM_MODE=development

3.5 Git 版本控制初始化:从第一天就规范

嗯,这里我要多说两句。我见过太多团队,项目写了一半才想起来用 Git,结果历史记录一团糟。咱们从第一天就初始化好。

# 初始化仓库
cd /path/to/your/project
git init

# 配置用户信息(全局一次即可)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 创建 .gitignore 文件
cat > .gitignore << EOF
# Python
__pycache__/
*.pyc
venv/
*.egg-info/

# Node
node_modules/
dist/

# Docker
data/

# IDE
.vscode/
.idea/

# 环境变量
.env
EOF

# 首次提交
git add .
git commit -m "chore: init project structure"

我的分支策略建议:

分支用途
main生产就绪代码,只接受 PR 合并
develop日常开发集成,所有功能分支合并到这里
feature/*新功能开发,比如 feature/bms-simulator
hotfix/*紧急修复,直接从 main 拉出

切记: 永远不要把 .env 文件提交到 Git 仓库!里面可能包含数据库密码、API Key 等敏感信息。我见过有人把生产环境的密钥传到了 GitHub 公开仓库,后果...嗯,你懂的。

好了,环境搭建这块就这些。别嫌啰嗦,把这些步骤走一遍,后面写代码的时候你会感谢现在的自己。下一章咱们开始搭仿真平台的核心骨架。


专注资料整理