如果你还在忍受 pip 解析依赖时的漫长等待,或者厌倦了在 pyenvpoetrypipx 等多个工具之间来回切换,那么是时候认识一下 uv 了。

uv 是由打造了著名代码检查工具 Ruff 的 Astral 团队使用 Rust 编写的极速 Python 包管理器。它不仅速度比传统工具快几十到上百倍,如今更进化成了一个一站式的 Python 工作流工具——它能同时替代 pipvenvpoetrypipx 甚至 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)

需要临时用一下 ruffblackhttpie 等命令行工具,又不想弄脏系统的全局环境?使用 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 接口),换来了令人惊艳的速度提升和清爽的工作流。如果你还没有体验过,强烈建议在下一个项目中试一试!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐