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

Installing Trio's dependencies with a warm cache.
官方文档 Installing uv 大多数都是先下载 install.sh,然后 sh install.sh 执行安装。
install.sh¶
首先,sh install.sh 默认把 uv 和 uvx 安装到 ~/.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 压缩包,然后解压缩到指定目录。
我们验证一下:
1. 首先,在 install.sh 的 downloader 部分增加一个 curl 执行输出。

所以,如果由于网络原因 install.sh 和 uv-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,请按照下列步骤作。
- 清理存储的数据(可选,在删除二进制文件之前,您可能希望删除 uv 存储的任何数据)
uv cache clean rm -r "$(uv python dir)" rm -r "$(uv tool dir)" - 删除
uv和uvx二进制文件rm ~/.local/bin/uv ~/.local/bin/uvx


