💻 写完项目 ≠ 项目完成。真正能跑在别人电脑上的代码,才叫“可交付”。这篇我们用最实用的方式教你:用 venv 管理依赖,用 Docker 实现部署。
✅ 本文目标
- 使用
venv构建干净的 Python 环境 - 使用
requirements.txt管理依赖 - 编写
Dockerfile一键构建镜像 - 本地运行一个 Flask 服务并打包成 Docker 镜像
🧪 一、使用 venv 创建独立 Python 环境
# 创建虚拟环境
python3 -m venv venv
# 激活环境
# macOS/Linux:
source venv/bin/activate
# Windows:
venv\Scripts\activate
# 安装依赖
pip install flask requests
📦 二、生成 requirements.txt 依赖列表
pip freeze > requirements.txt
生成的 requirements.txt 示例:
flask==3.0.0
requests==2.31.0
🔥 三、写一个最简单的 Flask 应用(demo.py)
# demo.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "✅ 项目部署成功!"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
🐳 四、编写 Dockerfile 打包你的项目
# Dockerfile
FROM python:3.11-slim
WORKDIR /app
# 拷贝依赖文件 & 安装
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 拷贝项目代码
COPY . .
CMD ["python", "demo.py"]
🏗 五、构建并运行镜像
# 构建镜像
docker build -t my-python-app .
# 运行容器
docker run -p 5000:5000 my-python-app
打开浏览器访问:http://localhost:5000
你将看到:
🔁 常用 Docker 命令速查
| 操作 | 命令 |
|---|---|
| 查看镜像 | docker images |
| 查看容器 | docker ps -a |
| 删除镜像 | docker rmi <镜像ID> |
| 停止容器 | docker stop <容器ID> |
| 删除容器 | docker rm <容器ID> |
💡 拓展挑战
- 配置
.dockerignore忽略.pyc、.venv、__pycache__ - 添加环境变量(如
FLASK_ENV=production) - 写
docker-compose.yml管理多容器服务(如 + MongoDB)
🧠 总结一句话
写好项目是工程能力,能部署项目是交付能力。用
venv + Docker,让你的代码从“我能跑”变成“谁都能跑”。