当前位置: 首页 > news >正文

【知识】UV Python 快速入门指南

以下是一份针对初次使用 UV 的 Python 程序员的详细文档。内容涵盖核心概念、安装配置、常用命令详解、从零到一的项目实战示例,以及与其他常见工具的对比和进阶技巧,帮助你顺畅掌握 UV。

一、什么是 UV?

UV 是一个基于 Rust 的 Python 依赖管理与环境工具,它将常见的 pip、venv、pyenv 等功能整合到一个统一的命令行界面中。相比传统工具,UV 的优势在于:

  • 更快的依赖解析和安装速度(Rust 实现,性能提升约 10 倍)

  • 原生支持多 Python 版本切换

  • 内置项目初始化和打包功能,减少手动配置

  • 统一的依赖树展示和版本锁定机制

二、安装与初始配置

  1. 系统要求

    • Python 3.7 及以上

    • Rust 虚拟环境(可选,UV 自带预编译二进制)

  2. 全局安装 UV

    # 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"# 或者使用 pip(会略慢)
    pip install uv#如果你支持pipx,也可以安装到隔离环境中
    pipx install uv
  3. 验证安装

    uv --version
    

三、管理 Python 版本

UV 支持列出、安装和切换多个 Python 解释器:

  • 列出本机可用版本

    bash

    uv python list
    
  • 安装指定 CPython 版本(示例:3.12)

    bash

    uv python install cpython3.12
    
  • 在某个命令中使用指定版本

    bash

    uv run -p 3.12 xxx.py
    
  • 进入交互式界面

    bash

    uv run -p 3.12 python
    
  • 使用系统默认或当前环境

    bash

    uv run xxx.py
    

四、核心命令详解

下表总结了 UV 最常用的命令及作用:

命令作用说明示例
uv init在当前目录创建 UV 项目(生成配置文件、虚拟环境结构等)uv init
uv add <package>向项目添加依赖,并自动更新锁文件uv add pydantic
uv remove <package>从项目中移除依赖uv remove pydantic
uv tree打印当前项目的依赖树uv tree --depth 2
uv build构建项目,生成可分发包或二进制文件uv build
uv lock(进阶)仅更新锁文件,不实际安装uv lock --check
uv clean(进阶)清理缓存与无用文件uv clean

五、从零到一:第一个 UV 项目

  1. 初始化项目

    bash

    mkdir my_uv_project && cd my_uv_project
    uv init
    
    • 在当前目录生成 uv.toml(或 pyproject.toml)和 .venv

  2. 添加依赖

    bash

    uv add requests fastapi
    
    • uv tree 可查看依赖关系。

  3. 编写示例脚本 app.py

    python

    from fastapi import FastAPI
    import requestsapp = FastAPI()@app.get("/")
    async def root():resp = requests.get("https://api.github.com")return {"status_code": resp.status_code}
    
  4. 运行脚本

    bash

    uv run app.py
    
  5. 构建分发包

    bash

    uv build
    # 生成 dist/ 目录下的 wheel 或可执行文件
    

六、与 Pip、Poetry、Conda 的对比

特性UVPip + venvPoetryConda
依赖解析速度极速(Rust 实现)中等中等较慢
多 Python 版本管理内置支持需手动配置 pyenv需配合 pyenv 或 plugin内置支持
项目初始化一条命令完成手动 venv + pippoetry init手动 conda create
构建/打包内置 uv buildsetuptools/Cython 等内置 poetry build需额外工具
社区成熟度新兴广泛成熟成熟

七、进阶技巧与常见问题

  • 切换已有项目的全局环境:

    bash

    uv env use /path/to/python3.11
    
  • 锁文件失效或依赖冲突时,强制更新锁文件:

    bash

    uv lock --force
    
  • 在 CI/CD 中使用:

    yaml

    steps:- name: Checkoutuses: actions/checkout@v2- name: Install UVrun: curl -sSf https://uv.dev/install.sh | bash- name: Install Dependenciesrun: uv install- name: Run Testsrun: uv run pytest
    
  • 遇到 Windows 平台路径问题,推荐使用 PowerShell 或 Git Bash,并开启 Long Path 支持。

八、更多资源

  •  官方文档:uv

  • UV 官方文档:https://uv.dev/docs

  • 示例代码仓库:https://gist.github.com/cradiator/b486a3148be3ab63ae7d0c5376fcf783

  • UV GitHub 主页:https://github.com/uv-tool/uv

  • 更多内容,看参考另一篇文档:【基础】Python包管理工具uv使用全教程_uv使用教程-CSDN博客


以上即为 UV 用法全貌及进阶指引,助你在 Python 项目中实现快速、可靠的依赖与环境管理。

祝你使用愉快!

http://www.dtcms.com/a/329914.html

相关文章:

  • GLM-4.5V 解读:多模态推理之王
  • 【Android】View#post执行时机浅谈
  • Chrome 插件开发实战
  • 高防IP的防护原理是什么?
  • 基于51单片机WIFI遥控防盗电子密码锁APP控制设计
  • 免费专业PDF文档扫描效果生成器
  • docker代码如何在vscod上修改
  • 三方相机问题分析六:【没用相机,诡异的手电筒不可使用】下拉状态栏,手电筒置灰,无法打开,提提示相机正在使用
  • RAG-Fusion 实战:检索召回率提升新方案
  • 数据分析小白训练营:基于python编程语言的Numpy库介绍(第三方库)(下篇)
  • 智能制造数字孪生最佳交付实践:打造数据融合×场景适配×持续迭代的数字孪生框架
  • 计算机二级 Web —— HTML 全面精讲(含真题实战)
  • 2020/12 JLPT听力原文 问题一 5番
  • Unity3d UGUI图片按钮只有非透明区域(透明阈值)可以点击功能实现(含源码)
  • OSG —— Windows11下Vs2017完美编译Osg3.6.5+osgQt(附:Osg+osgQt测试用例)
  • GLSL学习
  • IPO辅导四年半,马上消费何时“马到成功”?
  • 深度解析:DCF估值模型实战指南 ——以Kappa Pi Therapeutics为例的完整估值建模过程
  • 万字长文全解析:五种主流归一化方法深入讲解(BN/LN/IN/GN/WN)
  • html img标签设置默认图片,防止图片路径不存在导致图片不展示影响页面美观
  • 微服务单元测试组件
  • 二分|回溯
  • 了解 Linux 中的 /usr 目录以及 bin、sbin 和 lib 的演变
  • C++算法·递推递归
  • 基于.Net Framework4.5 Web API 引用Swagger
  • HCIP——OSPF综合实验
  • 药房智能盘库系统:基于CV与时间序列预测的库存革命
  • 蓝蜂网关在雄安新区物联网建设中的关键应用
  • Vue内置组件全解析:从入门到面试通关
  • 用 OPC UA C# WinForm 的单节点订阅方法