告别缓慢的 pip:新一代 Python 工具链神器 uv 安装与使用指南
如果你还在忍受 pip 解析依赖时的漫长等待,或者厌倦了在 pyenv、poetry、pipx 等多个工具之间来回切换,那么是时候认识一下 uv 了。
uv 是由打造了著名代码检查工具 Ruff 的 Astral 团队使用 Rust 编写的极速 Python 包管理器。它不仅速度比传统工具快几十到上百倍,如今更进化成了一个一站式的 Python 工作流工具——它能同时替代 pip、venv、poetry、pipx 甚至 pyenv。
本文将带你快速在 Linux 环境下安装和上手 uv,并理清它与老牌工具 conda 的区别。
1. 极速安装
在 Linux 上安装 uv 非常简单,不需要你预先安装 Python 或 Rust,官方提供了一个独立的安装脚本。
打开终端,运行以下命令(推荐使用 curl):
Bash
curl -LsSf https://astral.sh/uv/install.sh | sh
(如果系统没有 curl,可以使用 wget -qO- [https://astral.sh/uv/install.sh](https://astral.sh/uv/install.sh) | sh)
脚本会自动下载适合你系统的版本,并配置好环境变量。安装完成后,刷新一下终端配置使其生效:
Bash
source ~/.bashrc # zsh 用户请换成 source ~/.zshrc
验证安装是否成功:
Bash
uv --version
💡 日常维护: 未来想要升级到最新版,只需运行
uv self update即可。
2. 核心使用场景:四个命令搞定日常开发
uv 的功能非常全面,以下是日常开发中最常用的四种工作流:
场景一:现代化的新项目管理(强烈推荐)
如果你要开启一个新项目,可以直接用 uv 替代 Poetry 或 Pipenv。它会自动管理虚拟环境、依赖和锁文件(uv.lock)。
Bash
# 1. 初始化项目
uv init my_project
cd my_project
# 2. 添加依赖包(会自动生成/更新 pyproject.toml 并静默处理虚拟环境)
uv add requests
# 3. 运行代码(自动使用项目的虚拟环境运行,无需手动 activate)
uv run main.py
场景二:极速替代传统的 venv 和 pip
如果你习惯了传统的虚拟环境工作流,或者接手了带有 requirements.txt 的老项目:
Bash
# 1. 创建虚拟环境 (速度极快)
uv venv
# 2. 激活虚拟环境 (和以前完全一样)
source .venv/bin/activate
# 3. 极速安装依赖
uv pip install fastapi uvicorn
uv pip install -r requirements.txt
场景三:全局工具免安装运行(替代 pipx)
需要临时用一下 ruff、black 或 httpie 等命令行工具,又不想弄脏系统的全局环境?使用 uvx 命令:
Bash
uvx ruff check .
uvx 会在一个临时的隔离环境中光速下载并运行该工具,用完即走,干净利落。
场景四:自动管理 Python 版本(替代 pyenv)
不需要再去官网下载 Python 源码编译,uv 可以直接帮你安装和切换不同版本的 Python:
Bash
# 安装 Python 3.12
uv python install 3.12
# 指定 Python 3.11 版本来运行某个脚本
uv run --python 3.11 script.py
3. 灵魂拷问:它和 Conda 有什么区别?
很多朋友会问:“我已经有了 Conda,还需要看 uv 吗?” 这取决于你的使用场景。简单来说:uv 是轻量的性能跑车,而 conda 是全能的重型装甲车。
-
uv追求极致的速度和纯正的 Python 生态。 它直接从官方 PyPI 仓库下载包。如果遇到需要 C/C++ 编译的底层库,它依赖你系统自带的编译工具。-
适用人群: Web 开发者(Django/FastAPI)、爬虫工程师、自动化脚本编写者、纯 Python 软件开发者。
-
-
conda专注解决复杂的跨语言依赖。 它的包都是预编译好的,不仅包含 Python 库,还打包了各种底层 C/C++ 库甚至显卡 CUDA 驱动,完全不依赖你的系统环境。-
适用人群: 数据科学家、机器学习(AI)工程师、涉及大量底层依赖(如 PyTorch, GDAL, OpenCV)的科研人员。
-
最佳实践: 两者其实可以结合使用。对于做 AI 或数据科学的朋友,你可以用 Conda 创建一个包含重度底层依赖的基础隔离环境,然后在该环境中,使用 uv 来极速管理和安装其他的纯 Python 依赖包。
总结
uv 的出现标志着 Python 基础工具链迈入了一个新的时代。它用极低的迁移成本(兼容 pip 接口),换来了令人惊艳的速度提升和清爽的工作流。如果你还没有体验过,强烈建议在下一个项目中试一试!
更多推荐



所有评论(0)