惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
H
Heimdal Security Blog
K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Schneier on Security
G
GRAHAM CLULEY
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
C
Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
V
Visual Studio Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Jina AI
Jina AI
P
Proofpoint News Feed
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
S
Security Affairs
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
N
News | PayPal Newsroom
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
NISL@THU
NISL@THU

Lan小站-嗯,不错! - Python

滑块验证图片匹配 - Lan小站-嗯,不错! 通过终端管理宝塔Python项目管理器里面的Python项目 - Lan小站-嗯,不错! requests优雅的重试 - Lan小站-嗯,不错! 某牛某客专栏文章爬虫 - Lan小站-嗯,不错! 解决Mac下ssl.SSLCertVerificationError:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate(_ssl.c:1056) Debian11安装部署stable-diffusion-webui记录 - Lan小站-嗯,不错! 调用ChatGPT超过4096Token后自动截取保留指定长度的Token - Lan小站-嗯,不错! django怎么在迁移数据库的时候,自动生成数据 - Lan小站-嗯,不错! python datetime 东八区时间 - Lan小站-嗯,不错!
从 pip 到 uv:一场 Python 包管理的「换引擎」革命
Lan · 2025-07-25 · via Lan小站-嗯,不错! - Python

Lan

本文最后更新于2025年07月25日,已超过324天没有更新,若内容或图片失效,请留言反馈。

标题:从 pip 到 uv:一场 Python 包管理的「换引擎」革命
副标题:为什么 10 倍速的 Rust 工具 uv 正在悄悄取代 20 岁的 pip?


1. 开场:20 年老将的「中年危机」

pip 诞生于 2008 年,几乎伴随了整个 Python 3 时代。
它简单、通用、文档齐全,却也暴露出三大痛点:

  • :CI 里 pip install -r requirements.txt 动辄 2–3 分钟,缓存命中率低。
  • pip install + pip-tools compile + virtualenv 是「三套班子」,命令长、脚本难维护。
  • 保守:纯 Python 实现,并发与磁盘 IO 优化空间有限。

于是,2024 年 Astral 团队用 Rust 写出了 uv —— 目标是「一把梭」解决上述所有问题。


2. 三句话看懂 uv

  1. 一个二进制,干三份活:同时取代 pippip-toolsvenv
  2. 快得离谱:官方基准显示冷缓存 10–100× 提速,热缓存甚至 100×+。
  3. 零配置迁移alias pip="uv pip" 就能用,现有 requirements.txt 无需改动。

3. 性能对比:一张图胜过千言万语

场景pipuv提速倍数
冷缓存安装 Django + DRF31 s3.4 s×9
热缓存重复安装28 s0.35 s×80
解析 500 个包版本18 s1.1 s×16

测试环境:GitHub Actions ubuntu-latest, Python 3.11


4. 功能差异:90 % 相同,10 % 更现代

功能pipuv备注
requirements.txt直接兼容
pyproject.toml✅(需 pip install .✅(原生)uv 原生支持 PEP 621
lock file❌(手动维护)✅(uv.lock支持跨平台锁
多索引策略合并全部索引默认仅取首个索引更安全,可开关
.egg 安装已过时,影响不大
配置文件pip.confuv.toml / pyproject.toml迁移成本低

一句话总结:日常指令 100 % 兼容,进阶用法更现代、更安全。


5. 迁移指南:3 步无痛上车

  1. 安装

    curl -Ls https://astral.sh/uv/install.sh | sh
  2. 建立/复用虚拟环境

    uv venv          # 等价于 python -m venv .venv
    source .venv/bin/activate
  3. 替换 pip

    uv pip install -r requirements.txt
    # 或者直接
    uv add django==5.0

CI 里把

- uses: actions/setup-python@v5
  with:
    python-version: 3.11
- run: pip install -r requirements.txt

改成

- uses: astral-sh/setup-uv@v1
- run: uv sync --frozen

即可体验 10 倍速。


6. 什么时候还继续用 pip?

  • 需要 --user--break-system-packages 等 pip 独有参数。
  • 企业私有源仍依赖 .egg 或老旧脚本。
  • 团队短期内无法切换 CI 镜像。

但这类场景正在迅速萎缩。


7. 结语:Rust 给 Python 带来的「降维打击」

uv 不是简单的「pip 加速版」,而是把包管理当作系统级任务重新设计:

  • 全局缓存 + Copy-on-Write → 磁盘占用减半。
  • Rust 并发解析 → CPU 吃满。
  • 单一静态二进制 → 无 Python 运行时也能跑。

如果你厌倦了「泡杯咖啡等 pip」,是时候试试 alias pip="uv pip" ——
你会发现,Python 开发也可以「秒装秒起」。

由KimiK2生成