您是否厌倦了为了控制 Python 环境和依赖项而使用 pip、virtualenv、conda、poetry 和 pyenv 等多个工具?你并不孤单!管理 Python 项目可能会让人感到头疼,尤其是在需要处理各种不同的包管理器和工具的情况下。
输入 uv — 通用 Virtualenv。将其视为一站式包管理器,旨在简化和加速您的 Python 开发过程。
一些背景故事
uv 从另一位现代包装管理器 Rye 中汲取灵感,统一了 pip、pip-tools、pyenv、virtualenv 和 Poetry 的最佳功能。 uv 使用 Rust 构建,不仅速度快,而且效率高,简化了从管理依赖项到创建虚拟环境的一切。
紫外线的目的
简而言之,uv 就是整合。当您可以获得一种统一的体验时,为什么要在多种工具之间切换?它旨在消除 Python 开发中的摩擦,为您提供更一致、更快速的项目管理方式。而且速度还很快!这为动态管理打开了新的大门
1. 带有内联脚本元数据的可移植代码
让我们谈谈依赖关系
uv 最令人兴奋的功能之一是能够直接在 Python 脚本中添加依赖项。想象一下你有一个像这样的简单脚本:
# app.py import requests from rich.pretty import pprint response = requests.get("https://peps.python.org/api/peps.json") data = response.json() pprint([(k, v["title"]) for k, v in data.items()][:10])
运行此脚本通常意味着设置虚拟环境并手动安装依赖项。使用 uv,您可以将所有依赖项直接嵌入到脚本中,使其自包含和可共享:
$ uv add --script app.py 'requests <h3> 自动元数据生成 </h3> <p>这会将元数据添加到脚本文件中:<br> </p> <pre class="brush:php;toolbar:false"># /// script # dependencies = [ # "requests <p>就是这样!您可以与其他人共享此文件,他们只需运行:<br> </p> <pre class="brush:php;toolbar:false">$ uv run app.py
瞧——无需外部设置!这一切都归功于 uv 的速度和效率。
2. 创建和管理虚拟环境
虚拟环境入门
默认情况下,uv 要求在虚拟环境中安装软件包,以保持系统干净并避免不同项目之间的冲突。使用 uv 创建虚拟环境很简单:
$ uv venv
这将创建一个包含隔离环境的 .venv 目录。如果你想指定自定义目录或Python版本,你可以这样做:
$ uv venv my_env --python 3.9
环境已准备好使用,uv 会自动检测您的所有命令,例如安装包或运行脚本。
何时使用 uv add 与 uv pip install
-
使用 uv add:当您想要向项目的 pyproject.toml 文件添加依赖项时。当您正在开发项目并希望跟踪所有依赖项以使项目易于共享和复制时,这是最好的选择。我们将在下一篇文章中介绍这一点,敬请期待!
$ uv add fastapi
这将更新您的 pyproject.toml 并将版本锁定在 uv.lock 中。
-
使用 uv pip install:当您想要安装包以快速使用而不修改项目文件时,或者对于不需要在 pyproject.toml 中跟踪它们的全局工具时。将 uv pip 视为一种即时的一次性安装。
$ uv pip install requests
选择正确的命令可确保您的项目得到正确管理并易于共享或部署。
3. 锁定版本以实现可重复性
您的代码是否曾因更新而被破坏过?
我们都经历过这样的情况——你的代码今天可以运行,但明天就会因为包更新而崩溃。使用 uv,您可以通过锁定软件包版本来防止这种情况,以确保一致性和可重复性:
[tool.uv] exclude-newer = "2023-10-16T00:00:00Z"
这样,即使您的依赖项出现新版本,您的项目也保持稳定。非常适合无法承受意外的长期项目!
4. 管理Python版本
不同的项目,不同的Python版本?没问题!
许多开发人员必须处理需要不同 Python 版本的多个项目。 uv 让切换版本变得如此简单:
$ uv python install 3.8 3.9 3.10
安装版本后,它们之间的切换是无缝的:
$ uv run --python 3.10 app.py
如果您想锁定项目的特定版本:
$ uv python pin 3.9
不再需要杂耍 pyenv 命令 - uv 会为您处理所有繁重的工作。
5. Say Goodbye to pip Hassles
It's pip—but Faster and Better
uv provides a pip-like experience but with turbocharged performance. Installing packages is straightforward:
$ uv pip install flask
Need to add optional dependencies or install directly from a GitHub repo? No sweat:
$ uv pip install 'torch>=1.10.0' "git+https://github.com/astral-sh/ruff"
No more waiting around for slow installations—uv gets the job done fast and effectively.
6. Manage CLI Tools Globally and Easily
From black to ruff, Get Your Tools Hassle-Free
Whether you're linting code or formatting files, uv makes installing CLI tools easy:
-
Globally:
$ uv tool install ruff
-
Locally within a Project:
$ uv add ruff
-
Run Ephemeral Commands without Installing Globally:
$ uvx black my_code.py
Say goodbye to package conflicts and environment pollution—just run your tools whenever and wherever you need them.
If you're looking to supercharge your Python development and want to stop wrestling with multiple tools, uv is your answer. With its streamlined commands, reproducible environments, and efficient package management, uv makes Python development a pleasure rather than a chore.
Ready to take uv for a spin? ? Start today and experience a better way to manage your Python projects.
Stay tuned for Part 2, where we'll dive deeper into advanced features like leveraging pyproject.toml, handling global vs. local tool installations, and how uv can be your best friend when managing complex environments.
Happy coding! ?✨
For more details and full documentation, check out uv documentation.
以上是使用 uv 掌握 Python 项目管理 PartIts Time to Ditch Poetry的详细内容。更多信息请关注PHP中文网其他相关文章!

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

通过每天投入2小时的Python学习,可以有效提升编程技能。1.学习新知识:阅读文档或观看教程。2.实践:编写代码和完成练习。3.复习:巩固所学内容。4.项目实践:应用所学于实际项目中。这样的结构化学习计划能帮助你系统掌握Python并实现职业目标。

在两小时内高效学习Python的方法包括:1.回顾基础知识,确保熟悉Python的安装和基本语法;2.理解Python的核心概念,如变量、列表、函数等;3.通过使用示例掌握基本和高级用法;4.学习常见错误与调试技巧;5.应用性能优化与最佳实践,如使用列表推导式和遵循PEP8风格指南。

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

Python更适合数据科学和快速开发,C 更适合高性能和系统编程。1.Python语法简洁,易于学习,适用于数据处理和科学计算。2.C 语法复杂,但性能优越,常用于游戏开发和系统编程。

每天投入两小时学习Python是可行的。1.学习新知识:用一小时学习新概念,如列表和字典。2.实践和练习:用一小时进行编程练习,如编写小程序。通过合理规划和坚持不懈,你可以在短时间内掌握Python的核心概念。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom编辑器mac版下载
最流行的的开源编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)