G
N
I
D
A
O
L

Python 虚拟环境

https://mp.weixin.qq.com/s/oZMte5Mqf9Ow9sVP5v3FwA

最好的 Python 虚拟环境,永远是 2008 年就诞生的 python -m venv。

  • 2025 年还有人因为虚拟环境把生产事故干出来?
  • 还有人部署一个 FastAPI 接口要 1.7GB 镜像?
  • 还有人把 conda 当信仰,结果启动慢得像在跑 AlphaFold?

 

一、2025 年虚拟环境终极排行榜

排名工具镜像体积冷启动时间构建时间
NO.1 python -m venv + pip-tools 90∼150MB 1.8∼3.5s <90s
NO.2 uv(Rust 版) 100∼180MB 1.2∼2.8s <45s
NO.3 poetry 450∼800MB 8∼15s 3∼7min
NO.4 pipenv 600MB+ 12s+ 5min+
拉出去枪毙 conda 1.2∼3GB 25∼60s 8∼20min


二、2025 年最硬核、可直接抄走的终极配置流程

第 1 步:永远只用 python:3.12-slim 或 python:3.13-slim 做基础镜像别碰   alpine(大量 wheel 没编译),别碰 full 版(胖得像头猪)

第 2 步:永远在项目根目录创建 .venv,永远加入 .gitignore

python -m venv .venv --upgrade-deps

第 3 步:升级 pip 到最新 + 装三件套神器

pip install --upgrade pippip install pip-tools wheel setuptools-scm

第 4 步:把所有依赖写进 requirements.in

fastapi>=0.115.0uvicorn[standard]>=0.30.0pydantic>=2.9,<3.0sqlalchemy>=2.0redis[hiredis]

第 5 步:一键生成带 hash 的终极锁文件

pip-compile --generate-hashes --resolver=backtracking --strip-extras requirements.in

第 6 步:本地用 pip-sync,生产直接用锁文件

# 本地开发pip-sync requirements.txt
# Docker 里COPY requirements.txt .RUN python -m venv /opt/venv && /opt/venv/bin/pip install --no-cache-dir -r requirements.txt

第 7 步:把这行写进 Dockerfile,宣告胜利

ENV PATH="/opt/venv/bin:$PATH"

三、真实对比图

项目类型conda 方案venv + pip-tools 方案体积差启动速度差
FastAPI 博客 1.84GB 126MB 减重 93% 快 11 倍
Django 中大型 2.21GB 187MB 减重 91% 快 9 倍
数据分析脚本 2.67GB 312MB(必要科学包) 减重 88% 快 15 倍

 

四、三个残酷真相

    1. 所有声称“比 venv 更好”的工具,最终都会在 Dockerfile 里调用 venv 绕了一大圈,发现老祖宗最牛。
    2. 锁文件越复杂 ≠ 可复现性高 pip-compile 生成的带 hash 的 requirements.txt,才是 2025 年唯一能做到二进制级复现的方案。
    3. 真正的性能杀手从来不是代码,而是那 1.5GB 的“环境垃圾”

2025 年 12 月了,还在抱着 conda 当宝贝、把 poetry 当信仰、拿 pipenv 装资深,那只能说明一件事: 你不是在写 Python,你是在给工具链打工。

真正的杀手级玩家,终端永远干净得像手术台,只留两行命令:

python -m venv .venv --upgrade-deps && source .venv/bin/activatepip install pip-tools && pip-compile --generate-hashes --strip-extras

做完这两行,立竿见影的副作用有三个:

  1. 镜像直接从 2GB 暴跌到 120MB 以下,老板看了想给你发年终奖。
  2. 冷启动从 40 秒缩到 2 秒,监控曲线直接变成一条直线,运维看傻了。
  3. 再也不用半夜被叫起来修“在我机器上能跑”,因为所有机器都 100% 一致

 

posted @ 2025-12-04 22:02  firespeed  阅读(0)  评论(0)    收藏  举报