环境准备:工欲善其事,必先利其器

说实话,很多初学者一上来就急着写代码,结果环境配了三天还没跑起来。我见过太多这样的案例了。咱们这节课,就把地基打牢。

你要搭建设备身份注册系统,核心就是三样东西:Python 运行环境、Flask 框架、PostgreSQL 数据库。缺一个,后面都跑不起来。

本章目标:在你的电脑上,把 Python 3.10+、虚拟环境、Flask、PostgreSQL 全部装好,并且能互相连通。

环境准备核心结构 环境准备 Python 3.10+ 虚拟环境 PostgreSQL 下载安装 环境变量 创建 & 激活 安装配置 创建数据库 建议按顺序操作:Python → 虚拟环境 → Flask → PostgreSQL

1. Python 3.10+ 安装

我个人习惯用 Python 3.10 或 3.11。为什么?因为 3.8 以下已经停止安全更新了,而 3.12 有些第三方库还没完全适配。咱们做项目,稳定第一。

你想想看,如果装了个太新的版本,结果 Flask 某个依赖报错,排查起来多浪费时间。我就在项目中吃过这个亏——当时图新鲜装了 Python 3.12,结果有个 ORM 库死活装不上,最后乖乖退回 3.11。

Windows 用户

  1. 去 python.org 下载 Python 3.10.x 或 3.11.x 安装包
  2. 安装时务必勾选 "Add Python to PATH"
  3. 安装路径建议默认,别改

macOS / Linux 用户

  1. macOS 推荐用 brew install python@3.11
  2. Ubuntu/Debian 用 sudo apt install python3.11 python3.11-venv
  3. CentOS/RHEL 可能需要先添加 EPEL 源

验证安装:打开终端,输入 python --version 或 python3 --version,看到版本号就对了。

注意:Windows 上如果装了多个 Python 版本,建议用 py -3.11 来指定版本。我曾经见过有人同时装了 Python 3.9 和 3.11,结果 pip 装包时总装到旧版本上,折腾了半天。

2. 虚拟环境搭建

虚拟环境这东西,说白了就是给你的每个项目建一个独立的小房间。房间里装的 Python 包互不干扰。我刚开始学的时候觉得麻烦,直到有一次把两个项目的依赖搞冲突了,才明白虚拟环境有多重要。

嗯,这里要注意:千万不要用系统自带的 Python 直接装包。你想想看,万一你卸载一个包,把系统依赖也卸了,那可就麻烦了。

创建虚拟环境

# 进入你的项目目录
mkdir device-registry
cd device-registry

# 创建虚拟环境(python3.11 换成你的版本)
python3.11 -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate

# macOS / Linux:
source venv/bin/activate

激活成功后,终端前面会出现 (venv) 字样。看到这个,就说明你已经在虚拟环境里了。

小技巧:我习惯在项目根目录建一个 .gitignore 文件,把 venv/ 加进去。这样 Git 就不会把虚拟环境也提交上去了,省空间又干净。

3. Flask 框架安装

Flask 是个轻量级 Web 框架,咱们的设备身份注册系统用它正合适。它不像 Django 那么重,但该有的功能都有。

安装前确认一下:你已经在虚拟环境里了?好,那就开始。

# 确保 pip 是最新版
pip install --upgrade pip

# 安装 Flask
pip install Flask

# 验证安装
python -c "import flask; print(flask.__version__)"

如果看到版本号,比如 3.0.x,那就装好了。就这么简单。

建议:同时安装 python-dotenv,后面咱们要用环境变量管理配置。

pip install python-dotenv

4. PostgreSQL 数据库安装与配置

PostgreSQL,简称 Postgres,是目前最流行的开源关系型数据库之一。咱们的设备身份注册系统,设备信息、密钥、证书都得存数据库里,选 Postgres 准没错。

我为什么推荐 Postgres 而不是 MySQL?说白了,Postgres 对 JSON 支持更好,而且支持数组、UUID 这些高级类型。咱们后面要存设备证书和元数据,用 Postgres 会顺手很多。

安装 PostgreSQL

操作系统 安装方式 备注
Windows 下载安装包(EnterpriseDB) 一路默认,记住设置的密码
macOS brew install postgresql@16 安装后启动服务
Ubuntu sudo apt install postgresql postgresql-contrib 自动创建 postgres 用户
CentOS sudo yum install postgresql-server postgresql-contrib 需要手动初始化

启动服务

# macOS (Homebrew)
brew services start postgresql@16

# Ubuntu
sudo systemctl start postgresql
sudo systemctl enable postgresql   # 开机自启

# Windows
# 在服务管理器里找到 PostgreSQL,启动即可

创建数据库和用户

安装完成后,咱们需要创建一个专门给项目用的数据库和用户。别用默认的 postgres 用户,不安全。

# 切换到 postgres 系统用户(Linux/macOS)
sudo -u postgres psql

# 在 psql 命令行里执行:
CREATE USER device_admin WITH PASSWORD 'your_secure_password';
CREATE DATABASE device_registry OWNER device_admin;
GRANT ALL PRIVILEGES ON DATABASE device_registry TO device_admin;

# 退出 psql
\q

避坑指南:我曾经在 Windows 上安装时,忘记把 PostgreSQL 的 bin 目录加到 PATH 环境变量里。结果后面用 psql 命令时一直报 "命令未找到"。解决办法很简单:把 C:\Program Files\PostgreSQL\16\bin 加到系统 PATH 里就行。

验证连接

# 用新用户连接数据库
psql -U device_admin -d device_registry -h localhost

# 输入密码后,看到 device_registry=> 就说明成功了

5. 安装 psycopg2(Python 连接 Postgres 的桥梁)

Flask 要操作 Postgres,需要安装一个数据库驱动。我推荐 psycopg2,它是 Python 连接 Postgres 的事实标准。

# 在虚拟环境里安装
pip install psycopg2-binary

# 验证
python -c "import psycopg2; print(psycopg2.__version__)"

注意:psycopg2-binary 是预编译版本,开发环境用没问题。生产环境建议用 psycopg2 源码编译安装,性能更好。不过咱们现在只是搭环境,用 binary 版就够了。

6. 验证整个链路

环境都装好了,咱们写个小脚本测试一下,看看 Flask 能不能连上 Postgres。

# test_connection.py
from flask import Flask
import psycopg2

app = Flask(__name__)

@app.route('/')
def hello():
    try:
        conn = psycopg2.connect(
            host="localhost",
            database="device_registry",
            user="device_admin",
            password="your_secure_password"
        )
        return "数据库连接成功!"
    except Exception as e:
        return f"连接失败:{str(e)}"

if __name__ == '__main__':
    app.run(debug=True)

运行 python test_connection.py,然后在浏览器打开 http://127.0.0.1:5000。如果看到 "数据库连接成功!",恭喜你,环境全部就绪。

总结一下:咱们今天干了这几件事——装了 Python 3.11、建了虚拟环境、装了 Flask、装了 PostgreSQL、还让 Flask 连上了数据库。每一步我都踩过坑,你按这个流程走,基本不会出问题。