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

Python uv 包管理

长期使用 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.jsqmd.com/news/31329/

相关文章:

  • 2025年消防器材十大品牌推荐排行榜白皮书
  • 运营商数据治理新范式:AI大模型赋能的低成本场景适配分类分级系统
  • 2025年粉末涂料排行榜推荐,粉末涂料公司全解析
  • 2025年低压轴供货商权威推荐榜单:电机轴/加工轴/花键轴源头厂家精选
  • 好久不见,我自己
  • 2025 年 11 月财税合规全案设计服务商推荐榜单:专业财税合规,税务筹划,全流程合规设计方案公司精选
  • 2025年双开拍门批发厂家权威推荐榜单:双侧翻拍门/铸铁拍门/方拍门源头厂家精选
  • Oracle AWR管理与快照操作完整指南
  • 2025 年 11 月管道泄漏监测干涉型光纤传感安防系统,管道安全监测干涉型光纤传感安防系统,机场围界干涉型光纤传感安防系统公司最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • TensorFlow深度学习实战(39)——机器学习实践指南 - 指南
  • Oracle 数据库性能追踪与数据整合实践指南
  • 技术面:SpringBoot(springboot的类加载和传统的双亲委派有什么区别、如何按顺序实例化Bean)
  • 2025年采沙船优质厂家权威推荐榜单:挖沙船/射吸式抽沙船/抽沙船设备源头厂家精选
  • PG小版本升级步骤参考指导
  • SQL Server 并发控制:Fabric Warehouse只支持快照隔离
  • 2025 年 11 月插入式密度计,音叉密度计,直管密度计,在线密度计厂家最新推荐,聚焦高性能与可靠性兼具的优质品牌
  • 国标GB28181算法算力平台EasyGBS助力公交/客运搭建全场景实时监控安全管理新体系
  • 2025塑胶/汽车/精密/五金/冲压/模具配件/司筒/顶针/镶件/优选榜:锦鸿深耕二十载领跑,四大实力企业筑牢精密制造根基​
  • PG升级步骤参考指导
  • 2025年樱桃木木皮生产厂家权威推荐榜单:银橡木皮/榆木皮/天然木皮源头厂家精选
  • MES表结构示例
  • 20232410 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • hive在虚拟机中的部署
  • springboot xml json doc等选择
  • 2025 年 11 月科氏力质量流量计,热式气体质量流量计,质量流量计厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 面向对象思考
  • 2025年工业用防爆除湿机生产厂家权威推荐榜单:防爆恒温恒湿机/防爆工业除湿机/防爆调温除湿机源头厂家精选
  • 救命
  • 超越简单的回放:深度解析国标GB28181算法算力平台EasyGBS的录像检索与回放技术
  • 2025年聚四氟乙烯膜生产厂家权威推荐榜单:特氟隆膜/铁氟龙膜/特氟龙膜源头厂家精选