Python uv 包管理

news/2025/11/4 16:42:05/文章来源:https://www.cnblogs.com/luohengstudy/p/19190728

长期使用 Python 时,经常会面临多版本管理、依赖冲突以及库管理等问题,此时选择合适的包管理工具尤为重要。常见的工具包括 pipenv、virtualenv、Conda、Poetry、Rye、pipx、pip-sync 以及 uv。面对众多选择,应根据项目需求、环境隔离、依赖复杂度及团队协作等因素,综合评估和选择最适合自身场景的工具。

uv的github及官方文档链接:

https://github.com/astral-sh/uvgithub.com/astral-sh/uv
https://docs.astral.sh/uv/docs.astral.sh/uv/

为什么使用uv?

运行速度快

官网原文"An extremely fast Python package and project manager, written in Rust.",号称”比 pip 快 10-100 倍“,配图:

功能全面,且使用方便

替代pip、virtualenv、poetry、pyenv等工具,支持虚拟环境管理、依赖锁定、脚本运行、Python版本控制等,兼容传统pip命令,语法一致但性能优化。

依赖管理与环境可复现

锁文件机制:生成uv.lock文件精确记录依赖版本,确保开发、测试、生产环境一致性

智能冲突解决:基于PubGrub算法自动选择兼容版本组合,避免“依赖地狱”

安装UV

安装

已有python环境,直接通过pip安装:

pip install uv

或者通过命令来运行:

# windows环境,在powershell窗口执行:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# Mac OS 或 Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

如何高效使用

项目管理流程

1)创建项目或项目环境

# 创建项目环境同时自动创建文件夹
uv init project_name   # project_name为自己的项目文件夹名称# 如果是已有的项目文件夹
cd project_name   # 进入项目文件夹
uv init

执行上述命令后,会自动在文件夹下生成如下文件或文件夹,其中如果已有main.py,不会覆盖,自动创建的main.py只是个示例文件:

├── .python-version
├── README.md
├── main.py
└── pyproject.toml
└── .gitignore
.git

其中两个重点文件:

pyproject.toml是uv用于指定依赖项以及项目信息的文件,可以手动编辑此文件,使用uv add以及uv remove工具时,会自动更新此文件。

.python-version是用于管理python版本的文件(若未指定则自动检测)

2)创建虚拟环境并生成lock文件

# 如果是新项目,运行如下命令,会创建.venv环境以及uv.lock文件
uv sync# 如果希望从之前的requirements文件导入,会自动安装对应的包,并创建.venv环境以及uv.lock文件
uv add -r requirements.txt

其中:uv.lcok文件是一个toml格式文件,用于记录每个依赖及其子依赖的哈希值和下载源,确保环境一致性,不应该手动编辑,依赖于pyproject.toml文件来生成

3)添加、删除、更新、查看包

# 强烈不建议使用uv pip install命令,不会自动更新pyproject.toml文件
# 应该使用如下命令
uv add package  # package为需安装的包名称
uv remove package 
uv tree  # 树形结构显示已安装的包以及包依赖
uv pip list  # 会显示由uv管理和不由uv管理的所有安装包比如使用uv pip install安装的包
uv lock --upgrade-package loguru  # 更新包# 更多命令
uv add --group dev pandas  # 安装到开发环境
uv add --group production requests  # 安装到生产环境
uv add "httpx>=0.20"  # 版本条件

4)运行程序

# uv自动按照当前目录下的.venv识别和调用虚拟环境来运行
uv run your_script.py

使用技巧

配置镜像源

# 在pyproject.toml中,添加如下内容,url为自行添加的镜像源地址:
[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple"
default = true# 在终端中临时使用指定镜像源,包的名字在最后
uv add --default-index https://mirrors.aliyun.com/pypi/simple playwright

配置python版本

# 创建或初始化项目时
uv venv .venv --python 3.10   # 指定python版本# 在项目.venv已创建后,希望修改python版本
手动更改项目python版本。在pyproject.toml以及.python-version中更改版本之后,执行uv sync就会自动安装新版本pythonuv python list # 列出所有可用的python版本,包括本地已安装的版本
uv python install 3.13.2 # 使用uv安装指定版本的python

重点认识lock和sync

uv lock
# 精确依赖记录:根据 pyproject.toml 解析依赖关系,生成或更新 uv.lock 文件,
# 记录所有依赖及其子依赖的 精确版本、哈希值、下载源,确保开发、测试、生产环境的依赖完全一致,
# 避免因版本差异导致的兼容性问题
# 依赖树解析:基于 PubGrub 算法智能选择兼容版本,解决依赖冲突
# 哈希验证:依赖包的哈希值记录在 uv.lock 中,安装时校验完整性,防止篡改或损坏uv lock --check  # 检查更新
uv lock --update  # 强制重新解析依赖uv sync 
# 根据锁定文件"uv.lock"安装依赖,使当前环境依赖与锁定文件完全一致,不会自动更新pyproject.toml
# 根据 uv.lock 或 pyproject.toml 安装或更新依赖,使虚拟环境与声明文件完全一致
# 卸载环境中未在锁文件中声明的多余依赖,保持环境纯净
# 利用全局缓存(默认路径 ~/.cache/uv)复用已下载的包,减少网络传输和重复构建

文章原文转自:https://zhuanlan.zhihu.com/p/1905925258747289612

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/955837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年消防器材十大品牌推荐排行榜白皮书

2025年国内消防行业持续向智慧化、品质化、场景化升级,消火栓箱、灭火器、智能消防监控系统等核心器材成为建筑安全、工业防护、公共设施保障的关键屏障,其性能稳定性、认证合规性、售后响应速度直接决定应急场景下的…

运营商数据治理新范式:AI大模型赋能的低成本场景适配分类分级系统

一、概要: 随着5G技术的推广和数据量的急剧增长,运营商面临着数据分类与合规管理的巨大压力,尤其是在敏感数据的精准分类与新业务需求的快速适配方面。全知科技的“知源-AI数据分类分级系统”,该系统针对运营商在数…

2025年粉末涂料排行榜推荐,粉末涂料公司全解析

在工业涂装领域,粉末涂料以环保、高效、耐腐蚀的特性成为主流选择,但企业往往面临性价比难平衡场景适配性不足费用透明性低等痛点——尤其是室内涂装对环保性、耐候性的要求,交通领域对极端环境耐受性的需求,更考验…

2025年低压轴供货商权威推荐榜单:电机轴/加工轴/花键轴源头厂家精选

在工业制造对精度与可靠性要求日益提升的今天,一根高质量的低压轴已成为保障机械设备稳定运行的关键部件。 作为机械设备中的核心传动与支撑元件,低压轴件的加工精度与材料性能直接影响着整机设备的运行效率与使用寿…

好久不见,我自己

原来实习的我真的很天真好久不见,从实习结束之后就再也没有登录过这个账号,今天突然想起,兴致勃勃登上来看看。 现在我已经是一个工作3年的“新人”了; 我真的没有再写代码,但是也阴差阳错的继续留在这个行业了,…

2025 年 11 月财税合规全案设计服务商推荐榜单:专业财税合规,税务筹划,全流程合规设计方案公司精选

2025 年 11 月财税合规全案设计服务商推荐榜单:专业财税合规,税务筹划,全流程合规设计方案公司精选 行业背景与发展趋势 随着数字经济时代的深入发展,企业财税合规正面临前所未有的变革与挑战。近年来,国家税收监…

2025年双开拍门批发厂家权威推荐榜单:双侧翻拍门/铸铁拍门/方拍门源头厂家精选

在水利工程与市政建设持续发展的推动下,双开拍门作为关键的水力控制设备,其市场需求保持稳定增长。据2025年行业数据显示,中国水工金属结构市场规模已达320亿元,其中拍门产品作为重要组成部分,技术不断创新,应用…

Oracle AWR管理与快照操作完整指南

Oracle AWR管理与快照操作完整指南1. AWR简介与开启方法 AWR(Automatic Workload Repository)是Oracle数据库的性能诊断工具,它能自动收集、处理和维护性能统计信息。AWR默认情况下是开启的,但我们可以通过以下方式…

2025 年 11 月管道泄漏监测干涉型光纤传感安防系统,管道安全监测干涉型光纤传感安防系统,机场围界干涉型光纤传感安防系统公司最新推荐,聚焦资质、案例、售后的五家机构深度解读

引言 近期,国际安防设备协会发布 2025 年度光纤传感安防系统专项测评报告,报告显示在管道泄漏监测、管道安全监测及机场围界防护领域,干涉型光纤传感系统因精准度高、稳定性强的优势,市场需求同比增长 35%。本次测…

TensorFlow深度学习实战(39)——机器学习实践指南 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Oracle 数据库性能追踪与数据整合实践指南

Oracle 数据库性能追踪与数据整合实践指南在 Oracle 数据库运维场景中,性能诊断与数据同步是保障业务稳定的核心环节。本文基于实战命令,系统拆解从历史会话查询、10046 事件追踪,到 trace 文件解析与数据整合的完整…

技术面:SpringBoot(springboot的类加载和传统的双亲委派有什么区别、如何按顺序实例化Bean)

SpringBoot的类加载和传统的双亲委派有什么区别? SpringBoot如何按顺序实例化Bean前言 在SpringBoot中,类加载机制与Java的传统双亲委派类加载机制是有一定区别。主要体现在自定义类加载器与fat jar(可执行jar)的加载…

2025年采沙船优质厂家权威推荐榜单:挖沙船/射吸式抽沙船/抽沙船设备源头厂家精选

在河道治理与基建需求持续增长的背景下,一艘高效可靠的采沙船已成为提升河道疏浚与沙矿开采效率的关键装备。 采沙船作为河道疏浚、沙矿开采的核心设备,其技术水平与作业效率直接影响着工程进度与资源开发效益。为帮…

PG小版本升级步骤参考指导

点击查看代码 小版本升级步骤:(例如12.2升级到12.3) 安装pg12.2到/usr/local/pg12.2里面,然后创建/usr/local/pg目录,ln -s /usr/local/pg /usr/local/pg12.2。 这样升级的时候安装pg12.3到/usr/local/pg12.3,然…

SQL Server 并发控制:Fabric Warehouse只支持快照隔离

Fabric Warehouse只支持快照隔离,这是强制执行的,且不能修改隔离级别,还是默认省略SET ISOLATION SNAPSHOT 语句。 一,Fabric Warehouse 只支持快照隔离级别 不同于传统的数据仓库,Fabric Warehouse对所有事务强制…

2025 年 11 月插入式密度计,音叉密度计,直管密度计,在线密度计厂家最新推荐,聚焦高性能与可靠性兼具的优质品牌

引言 近期,行业权威协会针对 2025 年 11 月插入式密度计、音叉密度计、直管密度计、在线密度计厂家开展专项测评,测评覆盖全球范围内百余家主流企业。测评采用 “资质审核 + 性能测试 + 案例验证 + 售后调研” 四维评…

国标GB28181算法算力平台EasyGBS助力公交/客运搭建全场景实时监控安全管理新体系

国标GB28181算法算力平台EasyGBS助力公交/客运搭建全场景实时监控安全管理新体系随着城市发展与出行需求增长,公交/客运行业安全与管理问题日益突出。车辆内治安事件频发,超速、违规驾驶等行为威胁乘客安全,传统管理…

2025塑胶/汽车/精密/五金/冲压/模具配件/司筒/顶针/镶件/优选榜:锦鸿深耕二十载领跑,四大实力企业筑牢精密制造根基​

2025 年,被誉为 “工业之母” 的模具产业加速升级,模具配件司筒作为核心组件,市场需求向高精度、耐损耗方向集中。在 “全球模具产业之都” 东莞引领下,一批企业凭借技术积淀脱颖而出,以下推荐榜聚焦真实实力,为…

PG升级步骤参考指导

点击查看代码 16版本升级到17版本时: 安装pg16到/usr/local/pg16里面,然后创建/usr/local/pg目录,ln -s /usr/local/pg /usr/local/pg16。 这样升级的时候安装pg17到/usr/local/pg17,然后修改/usr/local/pg指向/us…

2025年樱桃木木皮生产厂家权威推荐榜单:银橡木皮/榆木皮/天然木皮源头厂家精选

在高端家具制造与室内装饰行业,樱桃木木皮以其独特的纹理和色泽,正成为设计师青睐的表面装饰材料。 随着市场对绿色、环保材料的需求持续增长,樱桃木木皮因其可再生性和良好的装饰性能,应用范围从传统家具制造扩展…