uv
现代的Python 包管理工具
https://docs.astral.sh/uv/#projects
安装
https://github.com/astral-sh/uv/releases

配置环境变量
测试安装是否成功:

uv 学习资料:
https://www.runoob.com/python3/uv-tutorial.html

uvx 和 uv 的区别
uv 和 uvx 都是现代化的 Python 命令行工具,它们的核心区别可以用一句话概括:uv 是全能的项目包管理器,而 uvx 是“用完即走”的临时工具运行器。
为了让你更直观地理解,可以参考下面的对比:
| 特性 | uv (全能管家) | uvx (临时运行器) |
|---|---|---|
| 核心定位 | 项目依赖管理、虚拟环境管理、Python版本管理 | 临时、隔离地运行命令行工具 |
| 主要作用 | 负责项目的“安装、同步、锁定”依赖 | 负责把工具“跑起来”,不污染当前环境 |
| 环境隔离 | 为项目创建专属的虚拟环境(如 .venv) |
自动创建临时的隔离环境,运行后自动清理 |
| 是否修改项目 | 会修改 pyproject.toml 和 uv.lock 文件 |
不影响项目依赖,不产生持久化修改 |
| 常见场景 | 开发 Python 项目、管理项目依赖库 | 临时运行代码检查、格式化等 CLI 工具 |
🔍 详细解析
1. uv:现代化的 Python 项目管家
uv 是一个基于 Rust 编写的超高性能工具,旨在替代传统的 pip、poetry、pipenv 和 virtualenv。当你需要开发一个 Python 项目时,你会用到 uv:
- 管理依赖:使用
uv add requests将依赖库安装到当前项目的虚拟环境中,并自动更新配置文件。 - 运行项目:使用
uv run python main.py在项目专属的环境中执行代码,无需手动激活虚拟环境。 - 管理 Python 版本:它还能自动下载和管理不同版本的 Python 解释器。
2. uvx:零副作用的工具启动器
uvx 本质上是 uv tool run 命令的别名(快捷方式)。它的设计灵感类似于 Node.js 生态中的 npx。当你只想临时使用某个 Python 编写的命令行工具(CLI),但不想把它安装到自己的电脑或项目中时,uvx 就派上用场了:
- 临时运行:比如你想用
black格式化代码,或者用ruff检查代码,只需输入uvx black .或uvx ruff check .。 - 绝对隔离:
uvx会在后台自动创建一个临时环境,下载并运行该工具,运行结束后环境会被清理(依赖包会缓存在全局以加速下次运行),完全不会污染你当前的项目或系统环境。
💡 举个例子
- 如果你正在开发一个网站,需要安装
django、requests等库,你应该使用uv(如uv add django)。 - 如果你只是想临时格式化一下代码,不想在项目里专门安装
black这个工具,你应该使用uvx(如uvx black my_code.py)。
简单来说,uv 负责“建设和管理”你的项目,而 uvx 负责“临时借用”外部工具。
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/20059654

浙公网安备 33010602011771号