uv pip 替代工具

发布时间: 更新时间: 总字数:1275 阅读时间:3m 作者:IP:上海 网址

uv 是一个使用 Rust 编写的极速 Python 软件包和项目管理器,pip 的替代工具。uv 可以管理项目依赖关系和环境,支持锁定文件、工作空间等,类似于 ryepoetry

介绍

  • 替代 pip、pip-tools、pipx、poes、pyenv、twine、virtualenv 等的单一工具
  • 比 pip 快 10-100 倍
  • ️ 提供全面的项目管理,具有通用锁文件
  • 运行脚本,支持内联依赖元数据
  • 安装和管理 Python 版本
  • 运行和安装以 Python 包形式发布的工具
  • 包含一个与 pip 兼容的界面,通过熟悉的 CLI 提高性能
  • 支持 Cargo 风格的工作区,可扩展项目
  • 磁盘空间效率高,全局缓存可实现重复数据依赖
  • 无需 Rust 或 Python,即可通过 curl 或 pip 安装
  • 支持 macOS、Linux 和 Windows

安装

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

# Or pipx.
pipx install uv

# 自更新
uv self update

使用

# 初始化项目
$ uv init example
$ cd example

$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
   Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
 + example==0.1.0 (from file:///home/user/example)
 + ruff==0.5.0

$ uv run ruff check
All checks passed!

$ uv lock
Resolved 2 packages in 0.33ms

$ uv sync
Resolved 2 packages in 0.70ms
Audited 1 package in 0.02ms
  • 配置全局源
# 指定默认镜像源为清华源
$ uv add pandas --default-index https://pypi.tuna.tsinghua.edu.cn/simple

# 添加镜像源清华源
$ uv add pandas --index https://pypi.tuna.tsinghua.edu.cn/simple

# 为pip指定默认源为南京大学源
$ uv pip install torch torchvision torchaudio --default-index https://mirror.nju.edu.cn/pytorch/whl/cu126
  • pyproject.toml
[[index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true

help

uv --help
uv pip --help
uv pip install --help
uv-help ...

python 版本管理

$ uv python install 3.10 3.11 3.12

# 创建 env,不加环境路径的话默认是保存在当前的 .venv 目录下
uv venv

# 指定环境保存目录
uv venv /path/to/venv

# 指定Python版本,注意需要对应版本的Python已经安装,--python 同 -p
$ uv venv --python 3.12
$ uv venv --python 3.12.0

$ uv run --python pypy@3.8 -- python --version

# 使用当前目录中的特定 Python 版本
$ uv python pin 3.11

# 使用
source venv/bin/activate

pip 子命令

功能类似于 pip,如 uv pip install -r ...

# 从 pypi上安装包,默认安装最新版本
uv pip install flask

# 从镜像网站上安装包
uv pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple

# 更新包版本
uv pip install -U flask

# 安装特定版本的包:
uv pip install -U flask==3.0.0

# 从当前目录安装
uv pip install .

# 从当前目录安装,并且支持editable实时更新代码模式
uv pip install -e .

# 卸载
uv pip uninstall flask

说明:

  • uv 默认不支持读 pip.conf 配置,在国内的话,包的默认下载速度是比较慢的,需要手动加--index-url/-i--extra-index-url

查看包依赖

uv pip compile my_packages.txt

# 生成指定版本的依赖
uv pip compile --no-annotate my_packages.txt -o requirements.txt

# 查找某个包的依赖
echo tensorflow | uv pip compile --no-annotate -

# 将 requirements.txt 中的版本信息更新到当前虚拟环境
uv pip sync requirements.txt

缓存

  • 默认缓存目录
    • Linux: $HOME/.cache/uv
    • macOS: /Users/<user>/Library/Caches/uv
    • Windows: C:/Users/<user>/AppData/Local/uv/cache
  • 清理缓存:uv cache prune

环境变量

# 缓存目录
export UV_CACHE_DIR=/path/to/cache/dir

# 镜像地址
export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

# 额外镜像地址
export EXTRA_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

# 不使用缓存
export UV_NO_CACHE=0

# 下载包时的超时时间,单位为秒
UV_HTTP_TIMEOUT=30

打包

uv build
本文总阅读量 次 本站总访问量 次 本站总访客数