跳转至

Python 包和项目管理工具 UV 安装与更新

uv 有人评价是近十年来 Python 生态出现的最好东西,它彻底改变了 Python 的安装和使用方式,尤其在快速解决依赖冲突(这对大型项目至关重要)方面,速度快得惊人。作为一个由 Astral 开发,用 Rust 编写,几乎可以在任何操作系统或平台上运行的免费的开源工具,个人在越来越多的开源模型、项目中都能看到它的身影,uv 似乎已经和 conda 成为了现在 Python 环境构建与管理的标配。

uv-fast
Installing Trio's dependencies with a warm cache.

官方文档 Installing uv 大多数都是先下载 install.sh,然后 sh install.sh 执行安装。

install.sh

首先,sh install.sh 默认把 uvuvx 安装到 ~/.local/bin 目录,当然我们也这两个可执行文件 mv 到任何想要的目录,然后把目标目录添加到 $PATH 环境变量中。如果我们想要指定安装目录,可以:

curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="/ifs1/software/uv" sh

其次,sh install.sh 会默认使用 curl 或者 wget 先去 github 下载对应 prebuilt binaries 压缩包,然后解压缩到指定目录。
uv-install-base-url

uv-install-curl-wget

我们验证一下: 1. 首先,在 install.shdownloader 部分增加一个 curl 执行输出。 uv-install-echo-curl

  1. 其次,我们对下载后的结果解压缩(unpack the archive)的执行也增加一个输出。 uv-install-tar

  2. 最后,直接在本地执行 sh install.shuv-sh-install-sh

所以,如果由于网络原因 install.shuv-x86_64-unknown-linux-gnu.tar.gz 无法正常下载,推荐使用下面的方法安装。

首先,下载好 install.sh

其次,下载好 uv-x86_64-unknown-linux-gnu.tar.gz,然后在 install.sh 中替换 ARTIFACT_DOWNLOAD_URL 为该压缩包所在的路径。

#ARTIFACT_DOWNLOAD_URL="${INSTALLER_BASE_URL}/astral-sh/uv/releases/download/0.8.3"
ARTIFACT_DOWNLOAD_URL="file:///ifs1/software/uv/src"

第三,指定安装目录,执行安装。

$ env UV_INSTALL_DIR="/ifs1/software/uv" sh uv-installer.sh
downloading uv 0.9.11 x86_64-unknown-linux-gnu
no checksums to verify
installing to /ifs1/software/uv
  uv
  uvx
everything's installed!

To add /ifs1/software/uv to your PATH, either restart your shell or run:

    source /ifs1/software/uv/env (sh, bash, zsh)
    source /ifs1/software/uv/env.fish (fish)

直接安装

综合 install.sh 的操作,其实我们可以直接去 https://github.com/astral-sh/uv/releases 下载对应的 prebuilt binaries 压缩包,然后解压缩到指定目录。但是这种安装会导致后续无法通过 uv self update 自动更新,需要再次去手动下载 prebuilt binaries 压缩包,然后再解压。

wget https://github.com/astral-sh/uv/releases/download/0.8.3/uv-x86_64-unknown-linux-gnu.tar.gz
tar xf uv-x86_64-unknown-linux-gnu.tar.gz --strip-components 1 -C /usr/local/uv

升级

uv 通过独立安装程序(install.sh)安装时,可以通过下面的方式更新。

$ uv self update

提示

Updating uv will re-run the installer and can modify your shell profiles. To disable this behavior, set INSTALLER_NO_MODIFY_PATH=1.

卸载

如果您需要从系统中去除 uv,请按照下列步骤作。

  1. 清理存储的数据(可选,在删除二进制文件之前,您可能希望删除 uv 存储的任何数据)
    uv cache clean
    rm -r "$(uv python dir)"
    rm -r "$(uv tool dir)"
    
  2. 删除 uvuvx 二进制文件
    rm ~/.local/bin/uv ~/.local/bin/uvx