uv 是 Astral 推出的 Python 工具链管理器,可以用来管理 Python 版本、虚拟环境、依赖、脚本、项目和工具。它的安装方式很多,官方文档提供了独立安装脚本,也支持 PyPI、Homebrew、WinGet、Scoop、Docker、GitHub Releases 和 Cargo。
如果只是想快速安装,优先用官方独立安装脚本。如果你希望通过系统包管理器维护版本,就用 Homebrew、WinGet 或 Scoop。如果你已经习惯 Python 工具隔离安装,可以用 pipx。
快速选择
| 场景 | 推荐方式 | 命令 |
|---|---|---|
| macOS / Linux 快速安装 | 官方独立安装脚本 | curl -LsSf https://astral.sh/uv/install.sh | sh |
| macOS / Linux 没有 curl | 官方脚本 + wget | wget -qO- https://astral.sh/uv/install.sh | sh |
| Windows 快速安装 | PowerShell 安装脚本 | powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" |
| Python 工具隔离安装 | pipx | pipx install uv |
| 临时或传统 Python 安装 | pip | pip install uv |
| macOS 包管理 | Homebrew | brew install uv |
| macOS MacPorts 用户 | MacPorts | sudo port install uv |
| Windows 包管理 | WinGet | winget install --id=astral-sh.uv -e |
| Windows Scoop 用户 | Scoop | scoop install main/uv |
| Rust 用户 | Cargo | cargo install --locked uv |
最推荐的通用方案:
- macOS / Linux:官方独立安装脚本;
- Windows:官方 PowerShell 安装脚本或 WinGet;
- 已经使用
pipx管理 Python CLI 工具:pipx install uv。
macOS 和 Linux:官方安装脚本
官方最直接的安装方式是用 curl 下载脚本并交给 sh 执行:
|
|
如果系统没有 curl,可以用 wget:
|
|
如果想安装指定版本,可以把版本号放进 URL。比如官方示例中的 0.11.11:
|
|
这个方式适合绝大多数个人开发环境。它的优点是简单、跨平台、和 uv 官方更新机制配合最好。
安装脚本会把 uv、uvx 等二进制文件安装到用户目录下,并可能修改 shell profile,让命令可以直接在终端中使用。如果你不希望安装器修改 PATH,可以参考官方 installer 选项,例如设置 UV_NO_MODIFY_PATH=1。
Windows:PowerShell 安装脚本
Windows 官方安装方式是用 PowerShell 执行安装脚本:
|
|
如果要安装指定版本,也可以把版本号放进 URL:
|
|
这里的 ExecutionPolicy ByPass 是为了允许从互联网获取并执行安装脚本。安全习惯上,执行前可以先查看脚本内容:
|
|
如果你习惯 Windows 包管理器,也可以优先用 WinGet 或 Scoop。
用 pipx 安装
官方文档提到,uv 发布到了 PyPI。如果从 PyPI 安装,推荐放进隔离环境,例如用 pipx:
|
|
这个方式适合已经把 pipx 当作 Python CLI 工具管理器的人。它可以避免把 uv 和当前项目环境混在一起。
如果没有 pipx,也可以直接用 pip:
|
|
但要注意:uv 在许多平台上提供预构建 wheel。如果某个平台没有对应 wheel,就会从源码构建,这时需要 Rust 工具链。
我的建议是:个人机器上,pipx install uv 比 pip install uv 更干净;项目环境里,不建议把 uv 当作项目依赖安装。
Homebrew、MacPorts、WinGet 和 Scoop
如果你更喜欢系统包管理器,uv 也支持常见渠道。
macOS 上用 Homebrew:
|
|
MacPorts 用户可以用:
|
|
Windows 上用 WinGet:
|
|
Scoop 用户可以用:
|
|
这些方式的好处是统一交给系统包管理器维护。缺点是升级节奏取决于对应包源,而不是 uv 官方安装脚本。
Docker、GitHub Releases 和 Cargo
uv 还提供 Docker 镜像,地址在 GitHub Container Registry:
|
|
这适合 CI、Dockerfile、构建镜像和临时运行环境。实际使用时,建议再看官方 Docker 集成文档。
如果你想手动下载二进制文件,可以从 GitHub Releases 获取。每个 release 页面通常包含支持平台的二进制文件,也会说明如何用 GitHub 地址调用独立安装器。
Rust 用户也可以从 crates.io 安装:
|
|
但这个方式会从源码构建,需要兼容的 Rust 工具链。除非你明确需要从 Rust 生态安装,否则普通用户不必优先选 Cargo。
升级 uv
如果 uv 是通过官方独立安装脚本安装的,可以用自更新命令:
|
|
官方提示说,更新 uv 会重新运行安装器,并可能修改 shell profile。如果不希望更新时修改 PATH,可以设置:
|
|
如果你是通过其他方式安装的,就应该用对应包管理器升级。比如用 pip 安装,就用:
|
|
Homebrew、WinGet、Scoop、MacPorts 也应该走各自的升级命令。
启用 shell 自动补全
uv 支持 shell 自动补全。官方文档建议先用下面命令确认当前 shell:
|
|
Bash:
|
|
Zsh:
|
|
fish:
|
|
PowerShell:
|
|
如果你也经常用 uvx,可以单独启用 uvx 补全。
Bash:
|
|
Zsh:
|
|
fish:
|
|
PowerShell:
|
|
配置后需要重启 shell,或者重新加载对应配置文件。
卸载 uv
如果要卸载 uv,可以先清理缓存和 uv 存储的数据:
|
|
然后删除二进制文件。
macOS / Linux:
|
|
Windows:
|
|
官方文档还提醒:0.5.0 之前,uv 会安装到 ~/.cargo/bin。如果你从早期版本升级过,旧二进制文件可能仍然留在那里,需要手动删除。
安装后先做什么
安装完成后,建议先确认版本:
|
|
然后可以从几个常见任务开始:
|
|
如果你是新项目,可以进一步学习:
uv init:初始化项目;uv add:添加依赖;uv sync:同步环境;uv run:在项目环境中运行命令;uvx:临时运行 Python CLI 工具。
我的建议
个人开发机上,优先使用官方独立安装脚本,因为它最贴近 uv 官方文档,也支持 uv self update。
Windows 用户如果不想执行远程脚本,可以用 WinGet 或 Scoop。macOS 用户如果习惯所有工具都交给 Homebrew 管理,可以直接 brew install uv。
已经使用 pipx 管理 Python CLI 工具的人,可以用 pipx install uv。但不建议在具体项目虚拟环境里用 pip install uv,这样容易把工具链和项目依赖混在一起。
如果是 CI 或容器构建,优先看 Docker 和 GitHub Releases,根据镜像构建流程固定版本。
相关链接
- uv 安装文档:https://docs.astral.sh/uv/getting-started/installation/
- uv First steps:https://docs.astral.sh/uv/getting-started/first-steps/
- uv Docker 集成:https://docs.astral.sh/uv/guides/integration/docker/
- uv GitHub Releases:https://github.com/astral-sh/uv/releases