跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python uv 依赖管理工具的安装及使用

uv 是 Astral 公司开发的基于 Rust 的高速 Python 包管理器及项目工作流工具,旨在替代 pip、virtualenv、poetry 等传统工具。支持一键安装,可快速创建虚拟环境、管理依赖(通过 pyproject.toml 和 uv.lock)、运行脚本及全局工具(uvx)。相比传统工具,uv 具有极速解析安装、一体化工作流、跨平台兼容等优势,能显著提升 Python 开发效率。

并发大师发布于 2026/3/26更新于 2026/9/1084 浏览

核心概念:uv 是什么?

uv 是一个用 Rust 编写的高速、一体化的 Python 包管理器和项目工作流工具。可以把它看作是 pip、pip-tools、virtualenv、pytest 等工具的超级替代品。

它的目标是提供极致的速度和无缝的开发者体验,由 Astral 公司开发(这家公司同时也是 Ruff 的创造者)。


1. uv 的主要功能和使用

安装 uv

在 macOS 和 Linux 上,通常使用一键安装脚本:

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

安装后,重启你的终端或运行 source ~/.bashrc(或对应 shell 的配置文件)。

在 Windows 上,可以使用 Powershell:

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

或者你也可以通过 pip 安装(虽然不推荐,因为 uv 的目标是管理 Python 环境,而不是被 Python 管理):

pip install uv

使用 uv 管理虚拟环境

uv 可以创建和管理虚拟环境,速度非常快。

  1. 激活虚拟环境:
    • Linux/macOS: source .venv/bin/activate
    • Windows: .venv\Scripts\activate

创建虚拟环境:

# 在当前目录创建 .venv 虚拟环境
uv venv

# 指定 Python 版本和路径创建虚拟环境
uv venv --python 3.11
uv venv --python 3.12 /path/to/venv

使用 uv 管理依赖(替代 pip)

uv 的核心功能是快速安装 Python 包。

将依赖安装到当前环境:

# 如果你已经激活了一个虚拟环境,可以直接安装
uv install requests

从文件安装依赖:

# 类似于 `pip install -r requirements.txt`
uv pip install -r requirements.txt

# 或者使用 uv 自己的方式(更推荐)
uv add -r requirements.txt

安装单个包:

uv add requests

使用 uv 管理项目(替代 Poetry/PDM)

uv 可以作为项目依赖管理器,类似于 Poetry 或 PDM,它会使用 pyproject.toml。

  1. 锁定依赖版本: uv 在运行 uv add 或 uv sync 时会自动生成/更新 uv.lock 文件。

运行项目脚本:

uv run python my_script.py

# 如果项目依赖了某个命令行工具,比如 `pytest`
uv run pytest

同步依赖(安装 pyproject.toml 中的所有包):

uv sync

添加依赖:

# 这会自动更新 pyproject.toml 并安装包
uv add flask
uv add pytest --dev # 添加开发依赖

初始化一个新项目:

uv init my-project
cd my-project

2. uvx 是什么?如何使用?

uvx 是 uv 工具集中的一个命令,它的全称是 UV eXecute。

它的核心功能是:无需预先安装,直接运行一个 Python 命令行工具(包)。

可以把它看作是 pipx 的极速替代品。

uvx 的使用场景

当你需要临时运行一个 Python 编写的命令行工具(例如 httpie, youtube-dl, black, mypy 等),但又不想把它安装到你的项目或全局环境中时,uvx 是完美的选择。

uvx 的基本用法

# 运行最新版本的 httpie
uvx httpie

# 运行特定版本的 black 代码格式化工具
uvx "black==23.0.0" --check .

# 运行一个 GitHub 仓库中的工具
uvx "git+https://github.com/astral-sh/ruff.git" check .

# 从本地目录运行一个工具
uvx "./my-local-tool"

工作原理

  1. 当你第一次运行 uvx <package> 时,uv 会:
    • 在一个独立的、隔离的虚拟环境中安装这个包。
    • 缓存这个环境。
  2. 然后,它直接运行这个环境中该包提供的命令行工具。
  3. 当你下次运行同一个版本的包时,uv 会直接从缓存中启动它,速度极快。

uvx 的常见用例

网络与工具:

uvx http --version # 使用 HTTPie
uvx cowsay "Hello!" # 趣味工具

开发工具:

uvx pre-commit run -a # 运行 git pre-commit hooks
uvx pytest # 运行测试(如果项目没安装 pytest)

代码格式化与检查:

uvx black . # 格式化代码
uvx isort . # 排序 import
uvx ruff check . # 快速代码检查
uvx mypy . # 类型检查

uv 和 uvx 的优势总结

  1. 极致的速度:得益于 Rust 和高效的缓存策略,依赖解析和安装速度远超传统 Python 工具。
  2. 一体化工具:一个 uv 工具解决了包管理、虚拟环境、运行脚本、运行全局工具等多个问题,无需在 pip、venv、pipx、poetry 之间切换。
  3. 优秀的用户体验:命令设计直观,错误信息清晰。
  4. 跨平台:在 Windows, macOS, Linux 上都有良好的支持。
  5. 与现有生态兼容:它理解 requirements.txt 和 pyproject.toml,可以无缝接入现有项目。

总结对比表

传统工作流uv 工作流说明
python -m venv .venvuv venv创建虚拟环境
pip install requestsuv add requests安装项目依赖
pip install -r requirements.txtuv sync安装所有依赖
pipx run blackuvx black运行一个全局的 Python 工具
poetry add pytest --devuv add pytest --dev添加开发依赖
poetry run python script.pyuv run python script.py在项目环境中运行脚本

总而言之,uv 是管理你项目依赖和环境的核心工具,而 uvx 是你快速、临时运行各种 Python 命令行工具的利器。两者结合,极大地提升了 Python 开发的效率和体验。

目录

  1. 核心概念:uv 是什么?
  2. 1. uv 的主要功能和使用
  3. 安装 uv
  4. 使用 uv 管理虚拟环境
  5. 在当前目录创建 .venv 虚拟环境
  6. 指定 Python 版本和路径创建虚拟环境
  7. 使用 uv 管理依赖(替代 pip)
  8. 如果你已经激活了一个虚拟环境,可以直接安装
  9. 类似于 pip install -r requirements.txt
  10. 或者使用 uv 自己的方式(更推荐)
  11. 使用 uv 管理项目(替代 Poetry/PDM)
  12. 如果项目依赖了某个命令行工具,比如 pytest
  13. 这会自动更新 pyproject.toml 并安装包
  14. 2. uvx 是什么?如何使用?
  15. uvx 的使用场景
  16. uvx 的基本用法
  17. 运行最新版本的 httpie
  18. 运行特定版本的 black 代码格式化工具
  19. 运行一个 GitHub 仓库中的工具
  20. 从本地目录运行一个工具
  21. 工作原理
  22. uvx 的常见用例
  23. uv 和 uvx 的优势总结
  24. 总结对比表

更多推荐文章

查看全部
  • Ollama:一条命令在本地运行 Llama2 等大模型
  • Flutter 三方库 arcade 在 OpenHarmony 上的适配与微服务实践
  • Ubuntu22.04 安装与配置 OpenClaw AI 助手教程
  • Oracle SQL 提升查询效率的写法
  • Python Pandas DataFrame 常用方法精讲
  • LazyLLM 多 Agent 实践:豆包模型源码部署与 Web 调试指南
  • Flutter 三方库 ethereum_addresses 在鸿蒙系统的适配与使用指南
  • 从原理到实践:AIGC与ASR/TTS技术在智能语音交互中的融合应用
  • 支持国内股票分析的 AI 开源项目 GitHub 精选
  • 基于大疆 MSDK 实现的无人机视觉引导自适应降落功能
  • 云服务器部署 ComfyUI+SVD 生成 AI 视频实战指南
  • Python 爬虫实战:抓取网易云音乐热歌榜
  • GitHub Copilot Pro 学生免费权益获取与 VS Code 配置指南
  • 人工智能:自然语言处理在法律领域的应用与实战
  • 弗洛伊德 - 沃舍尔算法 (Floyd-Warshall Algorithm)
  • GitHub Copilot 提升 AI 原生应用开发效率的 5 种方法
  • AI 生成前端 UI 的三步优化与风格控制技巧
  • Google A2UI 前端可操作性技术入门
  • Web前端基础入门:HTML、CSS与JavaScript核心知识
  • 2024 年中国大模型行业应用案例白皮书概览

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online