uv

现代的Python 包管理工具

https://docs.astral.sh/uv/#projects

安装

https://github.com/astral-sh/uv/releases

image

配置环境变量

测试安装是否成功:
image

uv 学习资料:

https://www.runoob.com/python3/uv-tutorial.html

image

pyproject.toml :文件介绍

uvx 和 uv 的区别

uvuvx 都是现代化的 Python 命令行工具,它们的核心区别可以用一句话概括:uv 是全能的项目包管理器,而 uvx 是“用完即走”的临时工具运行器

为了让你更直观地理解,可以参考下面的对比:

特性 uv (全能管家) uvx (临时运行器)
核心定位 项目依赖管理、虚拟环境管理、Python版本管理 临时、隔离地运行命令行工具
主要作用 负责项目的“安装、同步、锁定”依赖 负责把工具“跑起来”,不污染当前环境
环境隔离 为项目创建专属的虚拟环境(如 .venv 自动创建临时的隔离环境,运行后自动清理
是否修改项目 会修改 pyproject.tomluv.lock 文件 不影响项目依赖,不产生持久化修改
常见场景 开发 Python 项目、管理项目依赖库 临时运行代码检查、格式化等 CLI 工具

🔍 详细解析

1. uv:现代化的 Python 项目管家
uv 是一个基于 Rust 编写的超高性能工具,旨在替代传统的 pippoetrypipenvvirtualenv。当你需要开发一个 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 会在后台自动创建一个临时环境,下载并运行该工具,运行结束后环境会被清理(依赖包会缓存在全局以加速下次运行),完全不会污染你当前的项目或系统环境

💡 举个例子

  • 如果你正在开发一个网站,需要安装 djangorequests 等库,你应该使用 uv(如 uv add django)。
  • 如果你只是想临时格式化一下代码,不想在项目里专门安装 black 这个工具,你应该使用 uvx(如 uvx black my_code.py)。

简单来说,uv 负责“建设和管理”你的项目,而 uvx 负责“临时借用”外部工具。

posted @ 2026-05-16 15:48  chuangzhou  阅读(80)  评论(0)    收藏  举报