2. 开发环境搭建与项目初始化

在开始构建实时监控大屏之前,必须建立标准、可复现的开发环境。本章将引导你完成从 Python 安装到 Git 初始化的完整流程,确保所有学员在相同的技术栈上工作,避免“在我电脑上能跑”的环境差异问题。

2.1 技术栈概览

本项目采用轻量级全栈方案,后端使用 Flask 提供 RESTful API,前端使用 ECharts 进行数据可视化。下表列出了核心依赖及其在本课程中的职责:

组件 版本建议 职责说明
Python 3.10+ 运行时基础,提供异步支持与类型注解
Flask 3.0+ Web 框架,处理路由、请求与模板渲染
Flask-CORS 4.0+ 解决前后端跨域请求问题
python-dotenv 1.0+ 管理环境变量,分离配置与代码
Gunicorn 21.2+ 生产级 WSGI 服务器(部署阶段使用)
版本选择建议: 建议使用 Python 3.10 及以上版本,因为 3.10 引入了结构模式匹配(match-case)和更清晰的错误提示,这些特性在后续的数据清洗和路由处理中会用到。Flask 3.0 移除了对旧版 Werkzeug 的兼容,强制使用更安全的默认配置。

2.2 安装 Python 与虚拟环境

Python 安装完成后,最关键的一步是创建虚拟环境。虚拟环境为每个项目提供独立的依赖空间,避免不同项目之间的包冲突。

步骤一:创建项目虚拟环境

# 进入项目根目录
cd realtime-monitor-dashboard

# 创建虚拟环境(Windows)
python -m venv venv

# 创建虚拟环境(macOS / Linux)
python3 -m venv venv

步骤二:激活虚拟环境

# Windows (CMD)
venv\Scripts\activate

# Windows (PowerShell)
venv\Scripts\Activate.ps1

# macOS / Linux
source venv/bin/activate

激活成功后,终端提示符前会出现 (venv) 标识,表示当前处于虚拟环境中。

常见错误: 如果 Windows PowerShell 提示“无法加载文件……因为在此系统上禁止运行脚本”,请以管理员身份运行 PowerShell,执行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 后重试。切勿跳过此步骤直接全局安装依赖。

2.3 项目目录结构设计

良好的目录结构是项目可维护性的基石。本课程采用分层架构,将路由、模型、静态资源和配置分离。下图展示了完整的项目骨架:

实时监控大屏项目目录结构 realtime-monitor-dashboard/ app/ config/ tests/ routes/ models/ services/ default.py production.py requirements.txt .env .gitignore run.py 目录设计原则 app/ 存放业务代码,config/ 管理环境配置,tests/ 编写单元测试 根目录文件用于项目配置、依赖管理和启动入口

核心目录说明

  • app/:应用主包,内部按功能拆分为 routes/(路由)、models/(数据模型)、services/(业务逻辑)和 static/(静态资源)。
  • config/:包含 default.py(通用配置)和 production.py(生产环境配置),通过环境变量切换。
  • tests/:存放 pytest 测试用例,与 app/ 目录结构镜像。
  • run.py:应用启动入口,加载配置并创建 Flask 实例。

2.4 初始化 Git 仓库

版本控制是团队协作和代码回溯的基础。在项目根目录执行以下命令:

# 初始化 Git 仓库
git init

# 添加所有文件到暂存区
git add .

# 首次提交
git commit -m "chore: 初始化项目结构与虚拟环境"

配置 .gitignore

在项目根目录创建 .gitignore 文件,排除虚拟环境、缓存文件和本地配置:

# 虚拟环境
venv/
.venv/

# Python 缓存
__pycache__/
*.pyc
*.pyo

# 环境变量与本地配置
.env
*.local

# IDE 配置
.vscode/
.idea/

# 操作系统文件
.DS_Store
Thumbs.db
最佳实践: 将 .env 加入 .gitignore 可以避免数据库密码、等敏感信息泄露到远程仓库。团队成员之间通过 .env.example 模板共享配置结构。

2.5 配置 requirements.txt

requirements.txt 是 Python 项目的依赖清单,确保所有开发者安装相同版本的包。生成方式有两种:

方式一:手动编写(推荐用于教学)

Flask==3.0.3
Flask-CORS==4.0.1
python-dotenv==1.0.1
gunicorn==21.2.0

方式二:自动导出(用于已有环境)

# 激活虚拟环境后执行
pip freeze > requirements.txt
注意: 使用 pip freeze 会导出当前环境中所有已安装的包,包括间接依赖。建议在提交前手动清理,只保留直接依赖项,并在注释中注明用途。例如:# Web 框架、# 跨域支持。

2.6 验证环境

完成上述步骤后,执行以下命令验证环境是否配置正确:

# 检查 Python 版本
python --version
# 输出示例:Python 3.10.12

# 检查虚拟环境是否激活
pip list
# 应只显示基础包和 requirements.txt 中列出的包

# 测试 Flask 是否可导入
python -c "import flask; print(flask.__version__)"
# 输出示例:3.0.3

如果所有命令均正常输出,说明开发环境搭建成功。此时项目目录结构应如下所示:

realtime-monitor-dashboard/
├── app/
│   ├── __init__.py
│   ├── routes/
│   ├── models/
│   ├── services/
│   └── static/
├── config/
│   ├── __init__.py
│   ├── default.py
│   └── production.py
├── tests/
│   └── __init__.py
├── venv/
├── .gitignore
├── .env
├── requirements.txt
└── run.py