在 Python 开发中,包管理一直是一个绕不开的话题。长期以来,pip 都是官方推荐的标准工具,但随着项目规模的扩大,pip 在速度和依赖解析上的瓶颈逐渐显现。
最近,一个名为 uv 的新工具横空出世(有时被误称为 ux),以其惊人的速度震撼了 Python 社区。本文将带你详细了解 pip 的优化配置(清华源)以及这个新一代挑战者 uv 的强大之处。
1. 传统霸主:pip 及其优化
pip 是 Python Packaging Authority (PyPA) 推荐的包安装程序。虽然它功能稳定,但在国内网络环境下,下载速度往往慢得让人抓狂。
🚀 必修课:配置清华源镜像
为了提升 pip 的下载速度,将源切换到国内镜像站是最佳实践。这里推荐使用清华大学开源软件镜像站。
临时使用
如果你只是想临时快速下载某个包,可以在安装时加上 -i 参数:
|
永久配置(推荐)
为了一劳永逸,我们可以将清华源设置为默认源。
命令行配置(适用于所有操作系统):
需要你的 pip 版本 >= 10.0.0。
|
执行后,配置会自动写入你的配置文件中:
- Linux/macOS:
~/.config/pip/pip.conf - Windows:
%APPDATA%\pip\pip.ini
2. 极速新星:uv (The “UX” Game Changer)
也许你在某些地方听说了 “Python ux manager”,实际上它指的是 uv。
uv 是一个由 Astral 团队(也就是超快 Linter 工具 Ruff 的开发者)用 Rust 编写的 Python 包管理器。它的核心卖点非常简单粗暴:快,极致的快。
⚡ pip vs uv:核心区别
| 特性 | pip | uv |
|---|---|---|
| 底层语言 | Python | Rust |
| 安装速度 | 较慢,单线程逻辑为主 | 极快,充分利用并发和缓存,比 pip 快 10-100 倍 |
| 依赖解析 | 有时会陷入回溯死循环 | 全局缓存,解析算法极其高效 |
| 虚拟环境 | 需配合 venv / virtualenv |
内置 uv venv,毫秒级创建环境 |
| Python版本 | 仅管理包 | 可自动下载和管理 Python 版本 |
🔥 如何使用 uv
安装 uv
|
常用命令对比
1. 创建虚拟环境
- pip:
python -m venv .venv - uv:
uv venv(速度快到甚至不需要进度条)
2. 安装依赖
- pip:
pip install requests - uv:
uv pip install requests- 注意:uv 为了兼容性,保留了
uv pip接口,让你无缝迁移。 - 如果你使用项目管理模式,可以使用
uv add requests(类似 Poetry/npm)。
- 注意:uv 为了兼容性,保留了
3. 同步依赖
- pip:
pip install -r requirements.txt - uv:
uv pip sync requirements.txt
为什么你应该尝试 uv?
- 节省时间:在 CI/CD 流水线中,uv 可以将安装依赖的时间从几分钟缩短到几秒钟。
- 磁盘空间优化:uv 使用全局内容寻址存储,不同项目使用相同版本的包时,只会存储一份副本。
- 兼容性好:它被设计为可以直接替代
pip和pip-tools,你不需要重写所有的构建脚本。
总结
- 如果你追求极致的效率,或者受够了 pip 在大型项目中缓慢的解析速度,请立刻尝试 uv。
- 如果你暂时不想改变工作流,至少请配置好 pip 清华源,这是保证 Python 开发体验的底线。
注:uv 还在快速迭代中,建议关注其 GitHub 仓库 获取最新动态。
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客!