uv: Python 新一代极速包管理工具

在 Python 开发的世界里,环境配置和依赖管理一直是让无数开发者头疼的难题。从 pipvirtualenv,从 condapoetry,我们总是在寻找一个既能保证环境隔离,又能兼顾安装速度的完美方案。今天,我们要介绍的主角------uv,正是为终结这种混乱而生的新一代 Python 包管理工具。

什么是 uv?

uv 是由 Astral 团队(也是知名代码检查工具 Ruff 的开发者)使用 Rust 语言编写的极速 Python 包和环境管理工具。它的核心优势在于极致的性能 :官方基准测试显示,uv 创建虚拟环境和安装依赖的速度比传统的 pipvenv 快 10 到 100 倍。

更重要的是,uv 并非要完全抛弃现有生态,而是提供了一个大一统的工作流。它完全兼容 pip 的命令行接口和 requirements.txt 格式,同时引入了现代化的 pyproject.toml 标准,让你可以优雅地管理 Python 版本、虚拟环境、项目依赖以及全局工具。

安装 uv

uv 支持 Windows、macOS 和 Linux 全平台。推荐使用官方提供的一键安装脚本:

bash 复制代码
# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh 

# Windows (PowerShell) 
irm https://astral.sh/uv/install.ps1 | iex

安装完成后,可以通过 uv --version 验证是否安装成功。

配置 uv 全局镜像

  • 找到或创建全局配置文件 uv 的全局配置文件名为 uv.toml,根据操作系统的不同,路径如下:

    • Windows : %APPDATA%\uv\uv.toml (通常是 C:\Users\你的用户名\AppData\Roaming\uv\uv.toml)
    • macOS / Linux : ~/.config/uv/uv.toml

    如果对应的文件夹或文件不存在,可以手动创建它们。

  • 编辑配置文件内容 使用文本编辑器打开 uv.toml 文件,将以下内容复制进去即可。这里以配置国内常用的镜像源为例:

ini 复制代码
# 1. CPython 代理配置(加速下载 Python 解释器) 

python-install-mirror = "https://cnb.cool/astral-sh/python-build-standalone/-/releases/download/" 

# 2. PyPI 源配置(加速下载第三方包) 
[[index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

使用

Python版本管理

uv 内置了强大的 Python 版本管理器,完全可以替代 pyenv

  • 查看可用版本uv python list
  • 安装指定版本uv python install 3.12
  • 锁定项目版本 :在项目目录下运行 uv python pin 3.12,uv 会生成 .python-version 文件。以后无论是你还是你的同事,只要在这个目录下运行 uv 命令,都会自动使用 Python 3.12,彻底解决"在我机器上能跑"的千古难题。

项目初始化

uv 推崇以 pyproject.toml 为核心的现代项目管理方式。

  • 创建新项目 :运行 uv init [my-project] 。即可一键生成包含 pyproject.tomlREADME.md.gitignore 的标准项目结构。

  • 同步环境 :运行 uv sync。 当从 Git 克隆一个新项目后,只需在项目根目录运行 uv sync。uv 会自动读取配置,安装正确版本的 Python,创建 .venv 虚拟环境,并严格根据 uv.lock 文件安装所有依赖。它甚至会自动卸载环境中多余的包,确保本地环境与项目定义 100% 一致。

  • 配置国内镜像源 :为了加速依赖下载,可以在项目 pyproject.toml 中一劳永逸地配置镜像源:

ini 复制代码
[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

依赖管理

在日常开发中,请彻底告别手动编辑配置文件或直接使用 pip install 的习惯。

  • 添加依赖 :运行 uv add pandas,uv 会自动解析依赖、更新 pyproject.toml 并同步虚拟环境。
  • 移除依赖 :运行 uv remove pandas,uv 会同步清理配置文件和虚拟环境。
  • 运行脚本 :使用 uv run python main.py,uv 会自动匹配正确的虚拟环境并执行,无需手动 source activate

临时工具运行

uvx 这是 uv 最让人惊艳的功能之一。当你想临时使用某个 Python 命令行工具(如 ruffjupyter),却不想把它安装到当前项目或全局环境中时,uvx 是你的最佳选择。工具运行结束后,临时环境会被妥善处理,不会污染你的任何项目。 比如我们想运行一个mcp程序给ai调用,这个时候就可以用uvx工具运行脚本

避坑指南与最佳实践

  1. 统一使用 uv add :在 uv 管理的项目中,永远使用 uv add 来安装依赖。直接使用 uv pip install 虽然速度很快,但它不会 自动更新 pyproject.toml,这会导致依赖丢失,破坏项目的可复现性。
  2. 警惕 pyenv 冲突 :如果你之前使用过 pyenv,请注意终端中的 pythonpip 命令可能被 pyenv 的 shims 劫持。在 uv 项目中,请养成使用 uv run 前缀的习惯,或者直接使用 uv add
相关推荐
bill328227804319 小时前
从 0 到 1 掌握 1688API:商品详情获取技巧
python
hboot1 天前
AI工程师第五课 - 大语言模型基础
python·llm·fastapi
AOwhisky1 天前
Python 学习笔记(第一期与第二期)——基础语法——核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发
STLearner1 天前
ICML 2026 | LLM×Graph论文总结[1]【图基础模型,文本属性图,多模态属性图,图对齐,图提示学习,关系深度学习
论文阅读·人工智能·python·深度学习·学习·机器学习·数据挖掘
习明然1 天前
我的本地化AI项目(三)
人工智能·python·electron·c#·avalonia
喜欢的名字被抢了1 天前
Python实战:SQLAlchemy ORM与FastAPI项目集成
开发语言·python·sql·教程·fastapi
夏季疯1 天前
读论文:STARS 是什么结构?一个统一的歌声自动标注框架
python
光测实验室1 天前
3种Python降噪算法实测:我把处理速度提升了20倍
python
AOwhisky1 天前
Python 学习笔记(第三期)——流程控制核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发·流程控制
爱吃提升1 天前
Python桌面自动化PyAutoGUI完整实战教程:模拟鼠标键盘、窗口操作、图形识别自动化
python·自动化·计算机外设