我最近常用一个Python项目包管理工具,名字就俏,叫 UV ,它多少有点像Rust社区的Cargo,但专门给Python用的。说白了,它是一个"全家桶"式的升级,全面替代
pip
、virtualenv
、pipx
、pyenv
、poetry
......一套给你整干净。
你可能会想:咱们Python怎么突然冒出个包项目管理"一体机"?但你只要试一次,你就知道官方说的10~100倍速度,是真的快 ⚡️------这是因为它Rust底层写的,效率杠杠的 。
官宣重点来了------UV官方亮点
我照着官方页面列了几个关键点:
- 🚀 一个工具取代
pip
、pip-tools
、pipx
、poetry
、pyenv
、virtualenv
......全覆盖。 - ⚡️ 安装速度快到 10--100 倍!
- 🗂️ 支持统一锁文件(
uv.lock
),实现不同平台一致。 - ❇️ 可以直接运行脚本,支持内嵌依赖声明。
- 🐍 管理 Python 版本:装3.10~3.12没压力。
- 🛠️ 安装并运行Python CLI工具,比如
ruff
、pycowsay
。 - 🔩 CLI 跟
pip
接口兼容,用习惯pip
的可以续写。 - 🏢 支持类似 Cargo workspace 的多项目模式。
- 💾 强大的全局缓存,节省磁盘空间。
- ⏬ 安装方式多样:curl、pip、Homebrew......没有Rust也能装。
- 🖥️ 跨平台,macOS/Linux/Windows 都行。
第一步:安装 UV
Mac和Linux直接执行以下命令:
bash
curl -LsSf https://astral.sh/uv/install.sh | sh
# 装完你就多了个 uv 命令
windows系统执行以下命令:
bash
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
注意:windows下要在powershell下执行上面的命令,可恶的是杀毒软件会报病毒,直接点允许即可

安装完毕以后在终端执行
bash
vu -V
能看到版本号说明就装好了。
第二步:创建并管理虚拟环境
有些人问:"uv 会不会跟 venv 冲突?"
不会。它自己带虚拟环境功能 ,还能自动识别 .venv
文件夹。也就是说:
bash
uv venv
一行就能给你在当前目录创建 .venv/
虚拟环境。
然后呢,不用你去 activate 环境,它直接会识别 .venv
来执行命令。也就是说你用:
bash
uv run python script.py
就能运行脚本,等效于 source activate + python,省事很多。
第三步:项目初始化(就是初始化 pyproject.toml)
你如果准备新开一个项目,建议先初始化:
bash
uv init

它会帮你自动生成 pyproject.toml
,内容非常干净清爽,而且官方推荐格式,未来兼容性很好。
生成后pyproject.toml
结构大概是这样:
toml
[project]
name = "uv-test"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
然后就可以愉快地添加依赖了,比如安装tushare
库:
bash
uv add tushare
它会自动修改 pyproject.toml
并生成 uv.lock
锁文件。锁文件这个功能真的很赞,不同操作系统装出来的依赖版本也能保持一致,很适合多人协作。
第四步:同步依赖(尤其适合团队协作)
比如你从 Git 拉了个项目,有现成的 pyproject.toml
和 uv.lock
,你就可以用:
bash
uv sync
一键同步所有依赖,不需要管版本,自动创建虚拟环境、自动装依赖,一把梭。
这跟以前你要手动 pip install,指定版本、创建 venv 完全不是一个体验。
第五步:运行脚本(甚至支持脚本内写依赖)
这个功能我一开始真觉得有点离谱,后来用了觉得香。
你写一个脚本文件,在头部加注释:
python
# uv: requests rich
import requests
import rich
print("hello world")
然后你在命令行运行它:
bash
uv run myscript.py
UV 会自动识别注释里的依赖,如果没装就自动帮你建虚拟环境、装依赖,然后运行脚本。
说真的,这功能对于写临时脚本、测试、共享代码,简直就是神仙操作 🎉
第六步:管理 Python 版本
你不需要再装 pyenv,UV 内置了 Python 版本管理:
bash
uv python install 3.12
uv python pin 3.12
pin
是啥意思?就是这个项目默认用 3.12,不用每次切环境再指定版本了,每个项目可以绑定自己的 Python 版本,干净、稳定。
第七步:替代 pipx 安装 CLI 工具
比如你想用 ruff
或 httpie
这些命令行工具:
bash
uv tool install ruff
ruff myfile.py
它会用专属环境装好,完全不污染你的主 Python 环境,和 pipx 一个理念,但是用起来更舒服。还支持更新、卸载、列出等常见操作。
最后:UV 值不值得学?
我觉得,如果你已经厌倦了这些场景👇:
pip install
等半天- venv 激活又忘了
- pipx 和 pyenv 安装麻烦
- poetry 版本冲突看不懂
- requirements.txt 改起来头疼
那 UV 会让你眼前一亮,它简化了整个生态,又兼容旧习惯,真的是能用起来的实用工具。
彩蛋:一键执行所有操作示例
给你看一眼我从零到能跑起来的完整流程:
bash
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 新建项目
mkdir demo && cd demo
# 初始化项目
uv init
# 创建虚拟环境
uv venv
# 添加依赖
uv add requests pandas
# 运行脚本
uv run myscript.py
一套流程下来,稳,干净,不脏不乱不绕路。
如果你试了觉得好用,记得也告诉你同事朋友------让他们早点脱离 pip 地狱
更多内容可以参考UV官方网站https://docs.astral.sh/uv/