leejm
leejm
发布于 2026-04-16 / 3 阅读
0
0

uv

一个用 Rust 编写的极速 Python 包和项目管理工具。

更快、更便捷。

安装

macOS和linux
curl -LsSf https://astral.sh/uv/install.sh | sh

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

功能特性

Python版本管理

  • uv python install/uninstall [--reinstall]: 安装/卸载 Python 版本
    python底层是C,pypy底层是Python + RPython 执行方式是JIT(即时编译),JIT“把常运行的代码编译成机器码”,但对某些C扩展兼容没CPython顺
  • uv python list: 查看可用 Python 版本
  • uv python pin: 将当前项目固定使用特定 Python 版本

脚本运行

执行独立的python脚本

  • uv run: 运行脚本
  • uv add --script: 为脚本添加依赖
    脚本需要依赖包
  • uv remove --script: 从脚本移除依赖

项目管理

创建和开发带有 pyproject.toml 的 Python 项目。

  • uv init: 创建新 Python 项目
    创建项目或者在当前目录下初始化
  • uv add: 为项目添加依赖
  • uv remove: 从项目移除依赖
  • uv sync: 同步项目依赖到环境
  • uv lock: 为项目依赖创建锁文件
    uv.lock 是一个跨平台的锁定文件,其中包含有关项目依赖项的确切信息。与用于指定项目大致要求的 pyproject.toml 不同,锁定文件包含安装在项目环境中的确切解析版本。此文件应提交到版本控制系统,以便在不同机器上实现一致且可重现的安装。
    uv.lock 是一个人类可读的 TOML 文件,但由 uv 管理,不应手动编辑。
  • uv run: 在项目环境中运行命令
  • uv tree: 查看项目依赖树
  • uv build: 构建项目为分发包
  • uv publish: 发布项目到包索引

pip 接口

手动管理环境和包 —— 适用于遗留工作流或高级命令无法提供足够控制的情况。

创建虚拟环境(替代 venv 和 virtualenv):

  • uv venv:创建新的虚拟环境。

实用工具

管理和检查 uv 的状态,例如缓存、存储目录或执行自我更新:

  • uv cache clean: 清除缓存条目
  • uv cache prune: 清除过期的缓存条目
  • uv cache dir: 显示 uv 缓存目录路径
  • uv tool dir: 显示 uv 工具目录路径
  • uv python dir: 显示 uv 安装的 Python 版本路径
  • uv self update: 将 uv 更新至最新版本

评论