环境准备:工欲善其事,必先利其器
说实话,很多初学者一上来就急着写代码,结果环境配了三天还没跑起来。我见过太多这样的案例了。咱们这节课,就把地基打牢。
你要搭建设备身份注册系统,核心就是三样东西:Python 运行环境、Flask 框架、PostgreSQL 数据库。缺一个,后面都跑不起来。
本章目标:在你的电脑上,把 Python 3.10+、虚拟环境、Flask、PostgreSQL 全部装好,并且能互相连通。
1. Python 3.10+ 安装
我个人习惯用 Python 3.10 或 3.11。为什么?因为 3.8 以下已经停止安全更新了,而 3.12 有些第三方库还没完全适配。咱们做项目,稳定第一。
你想想看,如果装了个太新的版本,结果 Flask 某个依赖报错,排查起来多浪费时间。我就在项目中吃过这个亏——当时图新鲜装了 Python 3.12,结果有个 ORM 库死活装不上,最后乖乖退回 3.11。
Windows 用户
- 去 python.org 下载 Python 3.10.x 或 3.11.x 安装包
- 安装时务必勾选 "Add Python to PATH"
- 安装路径建议默认,别改
macOS / Linux 用户
- macOS 推荐用
brew install python@3.11 - Ubuntu/Debian 用
sudo apt install python3.11 python3.11-venv - 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 连上了数据库。每一步我都踩过坑,你按这个流程走,基本不会出问题。