新的Python库、项目管理工具——uv

uv 是一个由 Astral 团队开发的高性能 Python 包和项目管理工具。Astral 团队也是广受欢迎的 Ruff(一个极速的 Python linter)的开发者。uv 的目标是成为 Python 生态中的“一站式”工具,取代传统的工具链(如 pippip-toolsvirtualenvpoetry 等),同时提供更快的速度和更强大的功能。

uv 的核心优势在于其极快的速度和多功能性。它基于 Rust 编写,充分利用了 Rust 的高性能和安全性,使其在依赖解析、包安装和项目管理等方面比传统工具快 10 到 100 倍。


uv 的主要功能

  1. 极速包管理
    • 替代 pip,提供更快的依赖安装和解析。
    • 支持创建和管理虚拟环境。
  2. 依赖管理
    • 支持 requirements.txtpyproject.toml
    • 提供类似 poetry 的依赖锁定功能,生成统一的锁文件。
  3. 脚本运行
    • 支持通过 uv run 直接运行 Python 脚本,并自动处理脚本的依赖。
  4. Python 版本管理
    • 支持安装和管理多个 Python 版本(类似 pyenv)。
  5. 项目初始化
    • 提供 uv init 命令,快速初始化 Python 项目。
  6. 跨平台支持
    • 支持 macOS、Linux 和 Windows。

安装 uv

uv 可以通过以下方式安装:

1. 使用 curl 安装
curl -LsSf https://astral.sh/uv/install.sh | sh

安装完成后,重启终端或运行 source ~/.bashrc(或 source ~/.zshrc)以使 uv 生效。

2. 使用 pip 安装
pip install uv

使用 uv

1. 创建虚拟环境

uv 可以快速创建虚拟环境:

uv venv myenv

这会在当前目录下创建一个名为 myenv 的虚拟环境。

激活虚拟环境:

  • 在 macOS/Linux 上:
    source myenv/bin/activate
    
  • 在 Windows 上:
    myenv\Scripts\activate
    
2. 安装依赖

uv 可以替代 pip 安装依赖:

uv pip install requests

你也可以从 requirements.txt 安装依赖:

uv pip install -r requirements.txt
3. 依赖锁定

uv 支持生成锁文件(类似 poetry):

uv pip compile requirements.in -o requirements.txt

这会生成一个锁定的 requirements.txt 文件,确保依赖版本的一致性。

4. 运行脚本

uv 可以直接运行 Python 脚本,并自动处理脚本的依赖:

uv run script.py
5. 管理 Python 版本

uv 支持安装和管理多个 Python 版本:

uv python install 3.10

切换 Python 版本:

uv python use 3.10
6. 初始化项目

使用 uv init 快速初始化一个 Python 项目:

uv init myproject

这会创建一个包含 pyproject.toml 和虚拟环境的项目目录。


uv 的优势

  1. 极速
    • 基于 Rust 实现,依赖解析和包安装速度远超传统工具。
  2. 多功能
    • 集成了包管理、虚拟环境管理、脚本运行和 Python 版本管理等功能。
  3. 兼容性
    • 兼容现有的 Python 工具链(如 piprequirements.txtpyproject.toml)。
  4. 社区驱动
    • 由 Astral 团队开发,背后有一个活跃的社区支持。

uv 的适用场景

  • 需要快速安装和管理依赖的开发者。
  • 希望简化 Python 工具链的用户。
  • 需要高性能依赖解析和包安装的大型项目。
  • 需要跨平台支持的项目。

示例:使用 uv 管理一个项目

  1. 初始化项目:
    uv init myproject
    cd myproject
    
  2. 安装依赖:
    uv pip install flask
    
  3. 生成锁文件:
    uv pip compile pyproject.toml -o requirements.txt
    
  4. 运行脚本:
    uv run app.py
    

总结

uv 是一个革命性的 Python 工具,旨在简化并加速 Python 项目的依赖管理和开发流程。它结合了高性能、多功能性和易用性,是 Python 开发者值得尝试的新工具。如果你对现有的工具链感到不满,或者希望提升开发效率,uv 是一个绝佳的选择。

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

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

相关文章

【JMM】Java 内存模型

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 前言2. JMM 内存模型内容3. JMM 内存模型简单执行示意图 ⚠️ 不要与 JVM 内存分布混为一谈论&#xff0c…

服务器等保测评审计日志功能开启(auditd)和时间校准

操作系统审计日志功能开启auditd CentOS 7 默认已经安装 auditd,如果没有,可以通过以下命令安装: yum install audit systemctl start auditd systemctl enable auditd配置审计规则 配置审计规则。添加所需的审计规则 永久规则文件&#xff1…

Backend - C# EF Core 执行迁移 Migrate

目录 一、创建Postgre数据库 二、安装包 (一)查看是否存在该安装包 (二)安装所需包 三、执行迁移命令 1. 作用 2. 操作位置 3. 执行(针对visual studio) 查看迁移功能的常用命令: 查看…

改进萤火虫算法之一:离散萤火虫算法(Discrete Firefly Algorithm, DFA)

离散萤火虫算法(Discrete Firefly Algorithm, DFA)是萤火虫算法的一种重要变种,专门用于解决离散优化问题。 一、基本概念 离散萤火虫算法将萤火虫算法的基本原理应用于离散空间,通过模拟萤火虫的闪烁行为来寻找全局最优解。在离散空间中,萤火虫的亮度代表解的优劣,较亮的…

Java SpringBoot使用EasyExcel导入导出Excel文件

点击下载《Java SpringBoot使用EasyExcel导入导出Excel文件(源代码)》 在 Java Spring Boot 项目中,导入(读取)和导出(写入) Excel 文件是一项常见的需求。EasyExcel 是阿里巴巴开源的一个用于简化 Java 环境下 Excel…

十年后LabVIEW编程知识是否会过时?

在考虑LabVIEW编程知识在未来十年内的有效性时,我们可以从几个角度进行分析: ​ 1. 技术发展与软件更新 随着技术的快速发展,许多编程工具和平台不断更新和改进,LabVIEW也不例外。十年后,可能会有新的编程语言或平台…

【Linux】文件的压缩与解压

目录 gzip和 gunzip bzip2 和 bunzip2(特点和gzip相似) xz和unxz(特点和gzip相似) zip 和 unzip tar gzip和 gunzip 特点:只能对单个的普通文件进行压缩 不能进行归档,压缩或解压后的源文件都不存在 压缩后所生成的压缩格式是.gz格式 压缩&…

touch详讲

🏝️专栏:https://blog.csdn.net/2301_81831423/category_12872319.html 🌅主页:猫咪-9527-CSDN博客 “欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。” 目录 基本语法 主要功能 常用选项详解 1. …

【开源免费】基于Vue和SpringBoot的贸易行业crm系统(附论文)

本文项目编号 T 153 ,文末自助获取源码 \color{red}{T153,文末自助获取源码} T153,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

仓库叉车高科技安全辅助设备——AI防碰撞系统N2024G-2

在当今这个高效运作、安全第一的物流时代,仓库作为供应链的中心地带,其安全与效率直接关系到企业的命脉。 随着科技的飞速发展,传统叉车作业模式正逐步向智能化、安全化转型,而在这场技术革新中,AI防碰撞系统N2024G-2…

如何打开/处理大型dat文件?二进制格式.dat文件如何打开?Python读取.dat文件

背景&#xff1a; 希望查看C语言输出的二进制DAT文件&#xff0c;写入方式如下&#xff08;如果是视频或游戏&#xff0c;未必能使用这种方式打开&#xff0c;关键是需要知道数据的格式&#xff09; # 写入二进制的C语言fp fopen(str, "wb");for (int i 0; i < …

面向对象分析与设计Python版 活动图与类图

文章目录 一、活动图二、类图 一、活动图 活动图 活动图用于描述业务流程、工作流程或算法中的控制流。活动图强调的是流程中的各个步骤的先后顺序&#xff0c;它可以帮助系统分析师、设计师和程序员更好地理解系统的动态行为。 活动图与用例模型互为补充&#xff0c;主要用于…

51单片机——步进电机模块

直流电机没有正负之分&#xff0c;在两端加上直流电就能工作 P1.0-P1.3都可以控制电机&#xff0c;例如&#xff1a;使用P1.0&#xff0c;则需要把线接在J47的1&#xff08;VCC&#xff09;和2&#xff08;OUT1&#xff09;上 1、直流电机实验 要实现的功能是&#xff1a;直…

2024AAAI SCTNet论文阅读笔记

文章目录 SCTNet: Single-Branch CNN with Transformer Semantic Information for Real-Time Segmentation摘要背景创新点方法Conv-Former Block卷积注意力机制前馈网络FFN 语义信息对齐模块主干特征对齐共享解码头对齐 总体架构backbone解码器头 对齐损失 实验SOTA效果对比Cit…

数字IC设计高频面试题

在数字IC设计领域&#xff0c;面试是评估候选人技术能力和问题解决能力的重要环节。数字IC设计的复杂性和要求在不断提高。面试官通常会提出一系列面试题&#xff0c;以考察应聘者在数字设计、验证、时钟管理、功耗优化等方面的专业知识和实践经验。 这些题目不仅涉及理论知识…

Functions

1.trigonometric function 定义和图像 反三角函数是三角函数的反函数 versin(verse -sin)&#xff1a;1/sinx 性质 三角函数的公式 三角恒等式 周期性公式&#xff1a;直接画图记 公式记忆&#xff1a;先想象一个在第一象限的锐角 1&#xff1a;在坐标轴中旋转360 2.sin&am…

1/7 C++

练习&#xff1a;要求在堆区连续申请5个int的大小空间用于存储5名学生的成绩&#xff0c;分别完成空间的申请、成绩的录入、升序排序、成绩输出函数&#xff0c;并在主程序中完成测试 要求使用new #include <iostream>using namespace std; double *addr_new() {double …

[文献精汇]使用PyCaret预测 Apple 股价

介绍 开发一个机器学习模型来尝试通过线性回归分析来预测 Apple 股票的价格会很有趣。PyCaret 的库&#xff0c;这是一个开源的 Python 低代码机器学习库&#xff0c;可以自动化机器学习工作流程&#xff0c;非常适合像我这样的机器学习初学者。 线性回归分析 线性回归分析用…

【51单片机】02LED流水灯实验

点亮你的LED 一、点亮第一个LED1.GPIO介绍2.P1、P2、P3端口 二、LED实验2.尝试点亮LED3.LED流水灯 一、点亮第一个LED 1.GPIO介绍 这块内容这里可以做简单的了解&#xff0c;与数电知识强相关。后续可以再回过头来学习 GPIO (general purpose input output) 通用输入输出端口…