Python包管理工具uv常用场景使用超详细指南

 更新时间:2025年06月09日 09:47:25   作者:漫谈网络  
UV是由Astral团队开发的高性能 Python环境管理器,旨在统一替代pyenv、pip、venv、pip-tools、pipenv等工具,这篇文章主要介绍了Python包管理工具uv常用场景使用的相关资料,需要的朋友可以参考下

一、Python 版本管理

1. 查看已安装的 Python 版本

uv python list
  • 输出示例:
    Installed Python versions:
    - 3.11.5 (default)
    - 3.12.0
    

2. 安装指定 Python 版本

uv python install 3.12.0  # 安装 Python 3.12.0
  • 支持安装任意版本(如 3.9.183.13.0 等)。
  • 安装完成后,通过 uv python list 验证是否成功。

3. 切换项目 Python 版本

uv python pin 3.12.0  # 将当前项目锁定到 Python 3.12.0
  • 此命令会在项目根目录生成 .python-version 文件,记录版本信息。
  • 后续所有操作(如创建虚拟环境、运行脚本)均默认使用此版本。

二、虚拟环境管理

1. 创建虚拟环境并指定 Python 版本

uv venv --python 3.12.0  # 创建名为 .venv 的虚拟环境,使用 Python 3.12.0
  • 若未指定 --python,默认使用项目锁定的版本(通过 uv python pin 设置)。

2. 激活虚拟环境

# Linux/macOS
source .venv/bin/activate

# Windows
.venv\Scripts\activate
  • uv 推荐直接使用 uv run 命令运行脚本,无需手动激活环境
    uv run script.py  # 自动激活虚拟环境并执行脚本
    

三、依赖管理

1. 同步依赖项

在项目根目录运行以下命令,根据 pyproject.toml 或 requirements.txt 安装依赖:

uv sync  # 安装所有依赖并生成/更新 uv.lock 文件
  • 按分组安装依赖
    uv sync --only prod    # 仅安装生产依赖
    uv sync --only dev     # 仅安装开发依赖
    

2. 添加新依赖并同步

uv add requests==2.31.0      # 添加生产依赖
uv add --group dev pytest    # 添加开发依赖
uv sync                      # 更新依赖并生成锁定文件

四、多版本 Python 场景示例

场景:项目 A 使用 Python 3.11,项目 B 使用 Python 3.12

  • 初始化项目 A

    cd project_a
    uv python pin 3.11.5    # 锁定 Python 版本
    uv venv                 # 创建虚拟环境
    uv add numpy            # 添加依赖
    uv sync
    
  • 初始化项目 B

    cd project_b
    uv python pin 3.12.0    # 锁定 Python 版本
    uv venv
    uv add pandas
    uv sync
    
  • 运行脚本

    cd project_a
    uv run main.py  # 使用 Python 3.11 和 project_a 的依赖
    
    cd ../project_b
    uv run main.py  # 使用 Python 3.12 和 project_b 的依赖
    

五、常用命令总结

功能命令说明
安装 Python 版本uv python install <version>如 uv python install 3.12.0
锁定项目 Python 版本uv python pin <version>生成 .python-version 文件
创建虚拟环境uv venv默认使用锁定的 Python 版本
同步依赖uv sync安装依赖并生成/更新 uv.lock
运行脚本uv run <script>自动激活虚拟环境并执行

六、注意事项

  • 全局 Python 版本uv 默认通过虚拟环境隔离 Python 版本,无需全局切换。每个项目独立管理版本。

  • 依赖锁定文件提交 uv.lock 到版本控制,确保团队成员和 CI/CD 环境的一致性。

  • 性能优化利用 uv 的全局缓存加速依赖安装(默认路径:~/.cache/uv)。

通过上述操作,uv 可实现从 Python 版本管理到依赖同步的全流程高效控制。

到此这篇关于Python包管理工具uv常用场景使用的文章就介绍到这了,更多相关Python包管理工具uv使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 教你如何在Pytorch中使用TensorBoard

    教你如何在Pytorch中使用TensorBoard

    TensorBoard是TensorFlow中强大的可视化工具,今天通过本文给大家介绍如何在Pytorch中使用TensorBoard,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友一起看看吧
    2021-08-08
  • 使用opencv相关函数确定图片中的直线问题

    使用opencv相关函数确定图片中的直线问题

    这篇文章主要介绍了使用opencv相关函数确定图片中的直线问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • python安装CLIP包出现错误:安装.git报错问题及解决

    python安装CLIP包出现错误:安装.git报错问题及解决

    这篇文章主要介绍了python安装CLIP包出现错误:安装.git报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • python如何将图片转换素描画

    python如何将图片转换素描画

    这篇文章主要介绍了python如何将图片转换素描画,帮助大家更好的用python处理图片,感兴趣的朋友可以了解下
    2020-09-09
  • Python实现前向和反向自动微分的示例代码

    Python实现前向和反向自动微分的示例代码

    自动微分技术(称为“automatic differentiation, autodiff”)是介于符号微分和数值微分的一种技术,它是在计算效率和计算精度之间的一种折衷。本文主要介绍了Python如何实现前向和反向自动微分,需要的可以参考一下
    2022-12-12
  • 浅谈Python协程

    浅谈Python协程

    这篇文章主要介绍了Python协程的的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Python实现将图片批量转为PDF

    Python实现将图片批量转为PDF

    在日常办公和处理图片时,我们常常需要将多张图片合并成一个PDF文件,所以本文为大家介绍了如何使用Python实现图片批量转为PDF,感兴趣的可以了解下
    2024-12-12
  • Python 推导式、生成器与切片问题解决思路

    Python 推导式、生成器与切片问题解决思路

    这篇文章主要介绍了Python 推导式、生成器与切片,生成器实质就是迭代器,通过本文学习能够理解并掌握推导式、切片等用法并能解决实际问题,需要的朋友可以参考下
    2022-03-03
  • python爬取网页版QQ空间,生成各类图表

    python爬取网页版QQ空间,生成各类图表

    最近python课程学完了,琢磨着用python点什么东西,经过一番搜索,盯上了QQ空间,本文主要讲述了如何爬取网页版QQ空间,并生成词云图、柱状图、折线图、饼图的各种示例代码
    2021-06-06
  • Python实现多视频画面拼接

    Python实现多视频画面拼接

    这篇文章主要为大家详细介绍了如何利用Python实现多视频画面拼接功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-10-10

最新评论