首页 游戏 软件 资讯 排行榜 专题
首页
AI
Python新星uv解析:如何重塑十年生态系统开发效率

Python新星uv解析:如何重塑十年生态系统开发效率

热心网友
47
转载
2025-10-31

来自英国的天文学家和科学传播者Emily L. Hunt博士在自己的博客上发表了一篇文章,盛赞"uv是近十年来Python生态系统中最令人振奋的革新"。

uv,这个我们确实该好好认识一下了。

这款用Rust编写的Python包和项目管理工具近日在Hacker News上再度引发广泛关注。原因很简单,Emily L. Hunt博士在文章中由衷赞叹:"uv是Python生态近十年来发生的最美好的事情"。

虽然文章篇幅不长,但被分享到Hacker News后却引发了热烈讨论,收获了上千点赞。当然,许多讨论的焦点都集中在了Rust语言上。

不过在深入阅读这篇博客之前,我们先简单了解一下uv这个项目本身。

简单来说,uv是一个面向Python生态系统的高速"一体化"工具,可用于包管理、环境管理、项目初始化、工具执行、Python版本管理等。其由Astral公司开发,底层使用Rust语言实现,以追求极致性能。对于已有的工作流、pip、virtualenv、pipx、poetry等工具,uv提供了极强的兼容性,在某些场景下速度可提升10到100倍。

截至目前,该项目在GitHub上已经收获了超过7.1万星标!


接下来,我们就来看看为什么说"uv是近十年来Python生态系统发生的最好的事情"。

都2025年了。难道安装Python、管理虚拟环境、在同事间同步依赖,还非得那么费劲吗?

嗯...真的不用!

最近,一款名为uv的杰出新工具横空出世。它彻底革新了Python的安装和使用方式,让一切都变得无比简单。

uv是一款免费的开源工具。它由Astral打造,这家小型创业公司过去几年一直在持续产出优秀的Python工具,比如大名鼎鼎的linter——Ruff。uv能做到:

为你安装任意Python版本安装软件包管理虚拟环境极速解决依赖冲突

最棒的是,在我看来,uv在上述所有方面都比其他任何工具做得更好。

它的速度快得惊人。它由Rust语言编写,并且几乎兼容所有操作系统或平台。

安装 uv

uv的安装非常简单。有几种方法,但我认为最简单的是这个单行命令。

对于Linux和Mac用户:

curl -LsSf https://astral.sh/uv/install.sh | sh

或者,Windows用户在PowerShell中使用:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

之后,你就可以通过uv命令来使用它了。

安装uv不会搞乱你现有的任何Python环境。它是一个完全独立的工具,所以你可以放心地安装并试用。

管理项目的Python

无论开发什么Python项目,使用虚拟环境都是一个好习惯。

虚拟环境能将不同项目的代码和依赖相互隔离开。以我的经验来看,尽早养成这个习惯能省去未来很多麻烦。

uv天生就会使用虚拟环境。因此,一旦你开始用uv,上手虚拟环境也会变得非常容易。

uv会根据当前目录下pyproject.toml文件的配置来构建Python环境。

pyproject.toml文件是指定Python项目依赖的标准、现代格式。一个最精简的pyproject.toml文件可能如下所示:

[project]name = "my_project"version = "1.0.0"requires-python = ">=3.9,<3.13"dependencies = [ "astropy>=5.0.0", "pandas>=1.0.0,<2.0",]

简而言之,它只需要指定使用哪个Python版本和一些依赖项。当然,加上项目名称和版本号也是个好主意。

一旦你初始化了项目,或者项目里已经有了pyproject.toml文件,使用uv就变得非常简单。

你只需要在pyproject.toml文件所在的目录中运行:

uv sync

这个命令会为你执行以下操作:自动安装一个有效的Python版本,在目录下的.venv文件夹中安装所有依赖,创建一个新的虚拟环境,在你的目录中创建一个uv.lock文件,该文件会保存每个已安装包的确切、平台无关的版本。这意味着你的同事可以完全复刻你的Python环境。

用 uv 创建新项目

要用uv启动一个新的Python项目,你可以运行:

uv init

这个命令会为你创建一个新项目,包含pyproject.toml、README.md和其他重要的模板文件。

这个命令还有很多变种,比如uv init --bare和uv init --package等等。我建议你运行uv init --help来查看所有选项。

当你有了 pyproject.toml 文件

一旦你初始化了项目,或者项目里已经有了pyproject.toml文件,使用uv就变得非常简单。

你只需要在pyproject.toml文件所在的目录中运行:

uv sync

这个命令会为你执行以下操作:自动安装一个有效的Python版本,在目录下的.venv文件夹中安装所有依赖,创建一个新的虚拟环境,在你的目录中创建一个uv.lock文件,该文件会保存每个已安装包的确切、平台无关的版本。这意味着你的同事可以完全复刻你的Python环境。

uvx:跳过以上步骤,立即运行工具!

但有些时候,你可能只想快速运行一个工具。

比如,临时用Ruff检查下代码,或者在没有环境时启动一个Jupyter notebook服务器,甚至只是想快速启动一个装了pandas的IPython会话来打开某个文件。

uv tool命令让这一切变得异常简单。

运行像下面这样的命令:

uvx ruff

uv会自动下载你需要的工具,并在一个一次性虚拟环境中运行它。一旦这个工具被下载过,uv就会利用缓存,下次再运行就会快如闪电。

我有很多场合会用到这个功能。一个常见的场景是,快速启动一个安装了pandas的IPython会话,这样我就可以快速打开并查看一个parquet文件。例如:

uvx --with pandas, pyarrow ipython

或者,也许只是想启动一个Jupyter Lab服务器,好让学生发来的Jupyter notebook能快速打开。

老实说,我丝毫不会因为需要使用工具而感到不便,因为uvx总能在我需要时提供一张"万能通行证"。

如果这还不能说服你

我是在去年第一次发现uv的。

当时,我正和其他可爱的开发者们一起构建The Astrosky Ecosystem。这是一个很棒的旨在为天文学家们构建开源在线社交媒体集成项目。

但我们有很多开发者,大家在不同的操作系统上异步工作。很快,管理Python安装就成了一个艰巨的任务。

对我们而言,uv是一个极其强大的简化工具。我们现在终于能使用完全一致的Python安装环境了。这一点尤其重要,因为我们用的一些实验性依赖,每个版本都有破坏性改动。

在GitHub Actions中,我们计划使用uv来快速构建Python环境并运行单元测试。

在生产环境中,uv已经管理着我们所有服务器的Python版本。

能够确信所有机器上的Python和软件包安装总能得到一致且正确的处理,这种感觉真是太棒了。

这就是为什么我说,uv是近十年来Python生态系统发生的最好的事情。

你已经用上uv了吗?对此有什么看法?

来源:https://www.51cto.com/article/828463.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

斯坦福研究:上下文远比参数重要,无需重训的AI新突破
AI
斯坦福研究:上下文远比参数重要,无需重训的AI新突破

近日,斯坦福大学与 SambaNova Systems 合作发表了论文《Agentic Context Engineering: Evolving Contexts for Self-Improvi

热心网友
10.31
字节推通用游戏AI!5000亿参数训练,鼠标键盘超越GPT-5
AI
字节推通用游戏AI!5000亿参数训练,鼠标键盘超越GPT-5

Game-TARS基于统一、可扩展的键盘—鼠标动作空间训练,可在操作系统、网页与模拟环境中进行大规模预训练。 用鼠标和键盘打游戏的智能体,这就来了!它不仅能在《我的世界》中和普通玩家一较高下。还能玩

热心网友
10.31
DeepMind联手五大AI神殿:陶哲轩警示AI世纪难题挑战
AI
DeepMind联手五大AI神殿:陶哲轩警示AI世纪难题挑战

谷歌DeepMind再出重拳,集结全球五大顶尖机构,以AI之力直指数学界圣杯!同时,陶哲轩也发出冷静警示:须警惕AI滥用带来的潜在风险。 今天,谷歌DeepMind重磅发起「AI赋能数学计划」,集结

热心网友
10.31
大模型中输出引发争议:中间层可100%反推原始输入
科技
大模型中输出引发争议:中间层可100%反推原始输入

最近,一篇名为《Language Models are Injective and Hence Invertible》的论文在学术界和科技圈引起了广泛讨论,甚至连老马的 Grok 最新也下场转发。这

热心网友
10.31
人大清华DeepAnalyze:用大模型实现数据分析智能升级
AI
人大清华DeepAnalyze:用大模型实现数据分析智能升级

DeepAnalyze-8B 能够模拟数据科学家的行为,在真实环境中主动编排、优化操作,最终完成复杂的数据科学任务。 来自人大和清华的研究团队发布了DeepAnalyze,首个面向自主数据科学的ag

热心网友
10.31

最新APP

儿童宝宝连连看
儿童宝宝连连看
休闲益智 10-31
NBA2K20手游
NBA2K20手游
体育竞技 10-31
装甲纷争决定
装甲纷争决定
飞行射击 10-31
掘地求升2正
掘地求升2正
休闲益智 10-31
我功夫特牛
我功夫特牛
休闲益智 10-31

热门推荐

北京现代EON来袭!11.98万起能否抢占新能源市场?
科技
北京现代EON来袭!11.98万起能否抢占新能源市场?

在新能源汽车领域,自主品牌长期占据主导地位,合资品牌曾一度被边缘化,甚至被部分消费者视为“杂牌”。然而,近年来合资品牌开始加速转型,逐渐适应中国市场的新能源需求。广汽丰田铂智3X、日产N7等车型凭借

热心网友
10.31
小米汽车全国布局提速:424家门店覆盖125城
科技
小米汽车全国布局提速:424家门店覆盖125城

10月31日消息,今天,小米汽车向大家汇报小米汽车开店新进展。10月新增22家门店,全国125城已有424家门店。11月计划新增17家门店,预计覆盖吉安、临汾、南阳、十堰、渭南、宜宾6座新城市。据了

热心网友
10.31
AI将如何赋能区块链?盘点AI在DeFi、安全和数据分析中的应用
web3.0
AI将如何赋能区块链?盘点AI在DeFi、安全和数据分析中的应用

AI赋能区块链在DeFi、安全与数据分析领域实现突破:1 在DeFi中,AI实现智能投顾、风险管理、流动性优化与跨链互操作性;2 在安全方面,AI提升智能合约审计、节点行为检测、零知识证明效率与链上身份认证;3 在数据应用中,AI推动链上洞察、资产定价、网络监测与反洗合规,全面增强区块链系统的智能化水平。

热心网友
10.31
vivo手机怎么下载安装欧亿app: vivo手机安全下载指南与三步安装流程解析
web3.0
vivo手机怎么下载安装欧亿app: vivo手机安全下载指南与三步安装流程解析

关于在vivo手机上获取应用的几点思考 前几天帮亲戚调试新买的vivo手机,遇到个挺有意思的情况。他想安装某个特定用途的应用,但在官方应用

热心网友
10.31
保卫萝卜4第72关:胡桃夹子通关3步攻略
手游攻略
保卫萝卜4第72关:胡桃夹子通关3步攻略

保卫萝卜4胡桃夹子第七十二关是一个颇具挑战性的关卡。要顺利通关,需要精心规划布局,合理运用各种道具和炮塔。开局时,场上有一些初始的道具和炮塔。我们首先要利用好这些资源,在怪物出现的

热心网友
10.31