第1章:开发环境与工具链搭建

各位同学好,我是老张。在风电行业摸爬滚打了十来年,从最早的SCADA监控到现在的智能运维平台,我踩过的坑比风机塔筒还高。今天咱们聊聊开发环境搭建——别小看这一步,我见过太多项目因为环境不一致,最后联调时炸成一锅粥。

说白了,环境搭建就像打地基。地基不稳,后面盖多高的楼都得塌。咱们这个《风电智能运维平台集成实战》课程,第一步就是把你的电脑武装成一个专业的风电开发工作站。

开发环境与工具链搭建 Python 3.10+ 基础运行环境 Anaconda 虚拟环境管理 VS Code / PyCharm 代码编辑器配置 Git 版本控制 代码协作管理 pip / venv 管理 conda create / activate 插件 / 调试配置 commit / branch / merge Docker 容器化部署 镜像构建 / 容器编排 / 环境一致性 五大核心模块,构建风电智能运维开发基础

1.1 Python 3.10+ 环境配置

Python 3.10 有个新特性我特别喜欢——结构模式匹配。写风电数据处理时,match-case 语句让代码清爽多了。不过别急着装最新版,咱们做工程讲究稳定。我个人习惯用 3.10.11 这个版本,经过大量项目验证,坑少。

为什么选 Python 3.10?

  • 支持最新的 pandas 2.0 和 numpy 1.24,处理风电时序数据更快
  • match-case 语法让状态机代码更易读(比如风机运行模式切换)
  • 类型提示增强,写大型项目时能少很多 bug

安装步骤其实很简单,但我建议你注意两点。第一,安装时记得勾选「Add Python to PATH」,不然命令行里找不到 python 命令,你想想看那得多闹心。第二,别用微软商店的版本,直接去 python.org 下载官方安装包。

我的小技巧:装完 Python 后,在终端里跑一下 python --versionpip --version。如果显示的不是 3.10,八成是 PATH 没配好。我曾经在一台新电脑上折腾了半小时,最后发现是之前装的 Anaconda 把路径给抢了。

1.2 Anaconda 虚拟环境管理

做风电项目最怕什么?依赖冲突。这个项目要 pandas 1.5,那个项目要 pandas 2.0,没有虚拟环境的话,你只能二选一。Anaconda 就是来解决这个问题的。

我个人习惯用 conda 而不是 venv,原因很简单——conda 连非 Python 的依赖也能管。比如我们风电项目里常用的 hdf5 库,用 conda 装就省心很多。

创建虚拟环境的命令长这样:

# 创建一个叫 wind_ops 的环境,指定 Python 3.10
conda create -n wind_ops python=3.10

# 激活环境
conda activate wind_ops

# 安装常用包
conda install numpy pandas matplotlib scipy

# 退出环境
conda deactivate

避坑指南:我曾经在项目中期发现 conda 环境里的包版本乱掉了,原因是用了 conda update --all。这个命令会一股脑把所有包升到最新,很容易出问题。建议只更新你需要的包,别手贱。

对了,还有个实用技巧。你可以把项目依赖写进 environment.yml 文件,这样团队其他人直接 conda env create -f environment.yml 就能复现你的环境。这在风电运维平台这种多人协作的项目里特别有用。

# environment.yml 示例
name: wind_ops
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.10
  - numpy=1.24
  - pandas=2.0
  - matplotlib=3.7
  - scipy=1.10
  - pip
  - pip:
    - wind-turbine-io==0.3.1

1.3 VS Code 与 PyCharm 配置

编辑器这东西,说白了就是个人习惯。我平时写脚本用 VS Code,写大型项目用 PyCharm。两个都讲讲,你自己选。

VS Code 配置要点

VS Code 轻量,启动快,插件生态丰富。做风电数据分析时,我常用这几个插件:

插件名 用途 我的评价
Python 语法高亮、智能提示 必装,微软官方出品
Jupyter 交互式数据分析 风电数据探索利器
GitLens 代码版本历史可视化 查谁改了我的代码,一清二楚
Rainbow CSV CSV 文件彩色显示 看风电 SCADA 数据时眼睛不累

配置 settings.json 时,我建议加上这几行:

{
  "python.defaultInterpreterPath": "C:\\Users\\你的用户名\\anaconda3\\envs\\wind_ops\\python.exe",
  "python.terminal.activateEnvironment": true,
  "editor.formatOnSave": true,
  "python.linting.enabled": true
}

嗯,这里要注意:指定 Python 解释器路径时,一定要指向你 conda 环境里的那个 python.exe。不然 VS Code 用的是系统自带的 Python,包都找不到,那还写什么代码。

PyCharm 配置要点

PyCharm 功能全,但吃内存。如果你的电脑是 16G 内存以上,可以考虑用它。配置 conda 环境很简单:

  1. 打开 Settings → Project → Python Interpreter
  2. 点击齿轮图标 → Add → Conda Environment
  3. 选择 Existing environment,找到 wind_ops 环境
  4. 搞定

我个人觉得 PyCharm 的调试器比 VS Code 好用,特别是设条件断点的时候。做风电算法调试,经常要在特定风速条件下停下来看数据,PyCharm 的条件断点功能帮了我大忙。

1.4 Git 版本控制

Git 这东西,刚开始觉得麻烦,用习惯了就离不开了。我记得刚入行时,项目代码靠 U 盘拷来拷去,有一次把旧版本覆盖了新版本,三天的工作白干了。从那以后,我逢人就安利 Git。

风电运维平台的代码管理,我建议用这个分支策略:

  • main:稳定版,只能从 release 分支合并
  • develop:开发版,日常开发往这合
  • feature/xxx:功能分支,比如 feature/data-cleaning
  • release/x.x:发布分支,测试通过后合并到 main
  • hotfix/xxx:紧急修复,直接从 main 拉分支

常用的 Git 命令,我整理成了一张速查表:

场景 命令
克隆项目 git clone https://github.com/xxx/wind-ops.git
创建分支 git checkout -b feature/add-scada-parser
查看状态 git status
提交代码 git add . && git commit -m "feat: 添加SCADA数据解析器"
推送分支 git push origin feature/add-scada-parser
合并分支 git checkout develop && git merge feature/add-scada-parser

避坑指南:我曾经在 merge 时偷懒用了 git merge --no-ff 的相反操作,结果历史记录变成了一条直线,想回退某个功能都找不到节点。记住,永远用 git merge --no-ff 保留分支信息。

对了,提交信息也有讲究。我习惯用 Conventional Commits 规范:

feat: 新增风速预测模块
fix: 修复SCADA数据时间戳解析错误
docs: 更新API文档
refactor: 重构数据清洗逻辑
test: 添加单元测试覆盖

这样写的好处是,以后翻 git log 时一眼就能看出每个提交干了什么。你想想看,半年后回来改代码,看到「fix: 修复bug」这种提交信息,你肯定想骂人。

1.5 Docker 容器化部署准备

Docker 是咱们这个课程的压轴戏。为什么要在第一章就提它?因为后面的所有代码,最终都要跑在 Docker 容器里。提前把 Docker 装好,后面省事。

说白了,Docker 就是把你的应用和它需要的环境打包成一个「箱子」。这个箱子在开发电脑上能跑,在服务器上也能跑,再也不用听到「我电脑上明明能跑啊」这种话了。

安装 Docker Desktop 后,验证一下:

# 查看 Docker 版本
docker --version

# 运行 hello-world 测试
docker run hello-world

# 查看镜像列表
docker images

咱们后面会写一个 Dockerfile,把风电运维平台打包成镜像。这里先给你看个简单的例子,感受一下:

# Dockerfile 示例
FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "main.py"]

我的建议:现在先装好 Docker Desktop,跑通 hello-world。不用急着学太多,后面有专门的章节讲容器化部署。提前装好,是为了避免到时候卡在安装这一步。

本章小结

好了,环境搭建这块就聊到这儿。咱们把 Python 3.10 装好了,Anaconda 虚拟环境配好了,VS Code 和 PyCharm 也设置妥当了,Git 版本控制的基本流程也捋了一遍,Docker 也装上了。这一套组合拳打下来,你的开发环境已经具备了风电智能运维平台开发的基础条件。

下一章咱们开始写真正的代码——从风电 SCADA 数据采集开始。到时候你会发现,今天花时间搭环境,绝对值。


专注资料整理