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

uv - 一个现代化的项目+环境管理工具

参考: 【uv】Python迄今最好的项目管理+环境管理工具(吧?)_哔哩哔哩_bilibili

项目需求

想象,每次创建一个项目的时候,我们需要去写 README. md, .git 仓库, .gitignore,你会感觉很头大

对于 conda 而言,安装速度慢,让人头疼,而 uv 基于 rust 实现,速度快的飞起:
image 1

对于虚拟环境而言,我们想要导出我们的环境配置,则需要每次都用到 pip freeze > requirement.txt,这无疑很麻烦,而使用 uv 则只需要对方给你同步 pyproject. toml 即可

使用方法

Installation: pip install uv

初始化项目uv init my_project
初始化后我们可以发现默认创建了几个文件:
PixPin 2025 05 22 22 55 46

  1. .python-version 是指定的 python 版本
  2. pyproject.toml 包含了项目元数据,以及要用到的环境依赖

管理环境

管理 python 版本

下载 python 版本: uv python install python_version
E.g. uv python install 3.8 3.11

切换 python 版本: uv python pin python_version
E.g. 切换到 3.11 版本 uv python pin 3.11
PixPin 2025 05 22 23 27 30 1

添加依赖
uv add package_name
运行项目
uv run main.py
同步环境
uv sync

E.g. 一个简单的添加 requests 依赖并运行的 demo
PixPin 2025 05 22 23 01 46
PixPin 2025 05 22 23 02 48


有时候,我们想要临时运行一个程序,又不想放到环境中,则在命令后加个 x,即是 uvx
E.g. uvx pytest

有时候,我们只拿到了源码,但是没有给出 requirments 文件,同时我们又不想这时候我们可以使用 uv init --script filename.py 这个参数 :
uv 会在文件首生成一些 metadata,我们在其中指定好我们的依赖:
PixPin 2025 05 23 11 04 56
然后再执行 uv run main.py 就可以正常执行了,同时也不会创建虚拟环境


管理命令行工具

有时候,我们用到的一些工具可能是全局使用的,比如 pytest,这时候我们不想为单独的虚拟环境添加这个包,所以我们应该在全局上安装:
uv tool install package_name
比如安装 pytest: uv tool install pytest
卸载: uv tool uninstall package_name

安装好后 不用加 uv 前缀,直接使用包即可:
PixPin 2025 05 22 23 07 13

http://www.lryc.cn/news/2387456.html

相关文章:

  • 经典密码学和现代密码学的结构及其主要区别(2)维吉尼亚密码—附py代码
  • Elasticsearch 节点角色详解及协调节点请求策略
  • 视频逐帧提取图片的工具
  • 数据结构第1章编程基础 (竟成)
  • 互联网大厂Java求职面试:AI大模型与云原生架构融合中的挑战
  • msql的乐观锁和幂等性问题解决方案
  • Python 实现桶排序详解
  • 大模型(5)——编码器(Encoder)、解码器(Decoder)
  • Web3怎么本地测试连接以太坊?
  • Vue-02 (使用不同的 Vue CLI 插件)
  • 理解vue-cli 中进行构建优化
  • 理解计算机系统_线程(九):线程安全问题
  • vue3基本类型和对象类型的响应式数据
  • 3.8.4 利用RDD实现分组排行榜
  • python web flask专题-Flask入门指南:从安装到核心功能详解
  • C语言中的“类框架”工具
  • 【HW系列】—web组件漏洞(Strtus2和Apache Log4j2)
  • 第六十八篇 从“超市收银系统崩溃”看JVM性能监控与故障定位实战
  • Debian 11 之使用hostapd与dnsmasq进行AP设置
  • 有铜半孔的设计规范与材料创新
  • 机器学习知识体系:从“找规律”到“做决策”的全过程解析
  • STM32之FreeRTOS移植(重点)
  • 做好测试用例设计工作的关键是什么?
  • R语言科研编程-标准偏差柱状图
  • 未来教育考试答题软件4.0【自用链接备份】
  • OpenGL Chan视频学习-11 Uniforms in OpenGL
  • Flink系列文章列表
  • GitLab 从 17.10 到 18.0.1 的升级指南
  • 产业集群间的专利合作关系
  • PyQt学习系列02-模型-视图架构与数据管理