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

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

什么是 uv?

uv 是由 Astral 团队(也是知名代码检查工具 Ruff 的开发者)使用 Rust 语言编写的极速 Python 包和环境管理工具。它的核心优势在于极致的性能 :官方基准测试显示,uv 创建虚拟环境和安装依赖的速度比传统的 pip 和 venv 快 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.toml、README.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 命令行工具(如 ruff、jupyter),却不想把它安装到当前项目或全局环境中时,uvx 是你的最佳选择。工具运行结束后,临时环境会被妥善处理,不会污染你的任何项目。 比如我们想运行一个mcp程序给ai调用,这个时候就可以用uvx工具运行脚本

避坑指南与最佳实践

  1. 统一使用 uv add :在 uv 管理的项目中,永远使用 uv add 来安装依赖。直接使用 uv pip install 虽然速度很快,但它不会 自动更新 pyproject.toml,这会导致依赖丢失,破坏项目的可复现性。
  2. 警惕 pyenv 冲突 :如果你之前使用过 pyenv,请注意终端中的 python 或 pip 命令可能被 pyenv 的 shims 劫持。在 uv 项目中,请养成使用 uv run 前缀的习惯,或者直接使用 uv add。
相关推荐
kyrie_sakura24 分钟前
大模型学习7 -- 深度学习2 -- 张量
python·深度学习
智鸟科技GemeOpen开发者智能设备1 小时前
智能插座二次开发如何接入Home Assistant,从零开始完整工程实现(Python+React)
开发语言·python·物联网·react.js·智能家居
hqyjzsb1 小时前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
Andreapiki1 小时前
风险审计校招技术栈拆解:SQL、Python、Power BI在2026届JD中的真实权重
数据库·python·sql
2601_966949652 小时前
股票池发生变化后,如何高效更新行情数据?从全量刷新到增量同步
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
玖石书2 小时前
python-uv-windows环境安装方案
windows·python·uv
happylifetree2 小时前
Python06-08:Python开发工具PyCharm安装
python·pycharm
liuchangng2 小时前
类Jev项目Kev从入门到实战(1):Kev 是什么——不开权重也能自训的决策模型
人工智能·python·jev·kev·决策模型
leihefeng3 小时前
PX06-对比两个 Excel 文件的差异:从逐单元格到生产级实现
python·excel
Ticnix3 小时前
MCP 上个月把自己推翻重写了:Session 没了、Sampling 废了——你学的教程还停在 2025
python·agent·全栈