夜夜躁很很躁日日躁麻豆,精品人妻无码,制服丝袜国产精品,成人免费看www网址入口

網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

十年來Python生態(tài)最好工具,引爆全社區(qū)的uv到底是什么?

0
分享至



機(jī)器之心報(bào)道

編輯:Panda

uv,我們也該報(bào)道一下它了。

這個(gè)用 Rust 寫的 Python 包和項(xiàng)目管理工具近日在 Hacker News 上再次引發(fā)廣泛關(guān)注。原因很簡單,來自英國的天文學(xué)家和科學(xué)傳播者 Emily L. Hunt 博士在自己的博客上發(fā)布了一篇文章,稱「uv 是近十年來 Python 生態(tài)系統(tǒng)發(fā)生的最好的事情」。

博客不長,但被分享到 Hacker News 后卻引發(fā)了廣泛共鳴和討論,也收獲了上千點(diǎn)贊(雖然很多討論的焦點(diǎn)是 Rust)。





不過在看這篇博客之前,我們先簡單了解一下 uv 這個(gè)項(xiàng)目本身。

簡單來說,uv 是一個(gè)面向 Python 生態(tài)系統(tǒng)的高速「一體化」工具,可用于包管理、環(huán)境管理、項(xiàng)目初始化、工具執(zhí)行、Python 版本管理等。其由 Astral(同樣推出了知名工具 Ruff)開發(fā),底層使用 Rust 語言實(shí)現(xiàn),以追求極致性能。對(duì)于已有的工作流、pip、virtualenv、pipx、poetry 等工具,uv 提供極強(qiáng)的兼容性并且在某些場景下速度可提升 10–100 倍。



截至目前,該項(xiàng)目在 GitHub 已經(jīng)收獲了超 7.1 萬 star!



  • 項(xiàng)目:https://github.com/astral-sh/uv
  • 文檔:https://docs.astral.sh/uv/

以下是 uv 的一些關(guān)鍵特性:

  • 一款工具即可取代 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv 等眾多工具。
  • ?? 比 pip 快 10 到 100 倍。
  • ? 提供完善的項(xiàng)目管理功能,并支持通用鎖定文件(lockfile)。
  • ?? 可直接運(yùn)行腳本,并支持內(nèi)聯(lián)依賴元數(shù)據(jù)。
  • 支持安裝和管理多個(gè) Python 版本。
  • ? 可運(yùn)行或安裝以 Python 包形式發(fā)布的命令行工具。
  • 內(nèi)置兼容 pip 的接口,在保持熟悉命令行體驗(yàn)的同時(shí)大幅提升性能。
  • 支持類似 Cargo 的工作區(qū)結(jié)構(gòu),輕松管理大型項(xiàng)目。
  • 磁盤占用高效,依賴可通過全局緩存實(shí)現(xiàn)去重。
  • ? 無需預(yù)裝 Rust 或 Python,即可通過 curl 或 pip 安裝。
  • ? 兼容 macOS、Linux 和 Windows 系統(tǒng)。

接下來,我們就來看看為什么說「uv 是近十年來 Python 生態(tài)系統(tǒng)發(fā)生的最好的事情」。



  • 博客標(biāo)題:uv is the best thing to happen to the Python ecosystem in a decade
  • 博客地址:https://emily.space/posts/251023-uv

都 2025 年了。難道安裝 Python、管理虛擬環(huán)境、在同事間同步依賴,還非得那么費(fèi)勁嗎?

嗯... 真的不用!

最近,一款名為 uv 的杰出新工具橫空出世。它徹底革新了 Python 的安裝和使用方式,讓一切變得無比簡單。

uv 是一款免費(fèi)的開源工具。它由 Astral 打造,這是一家小型創(chuàng)業(yè)公司,過去幾年一直在持續(xù)產(chǎn)出優(yōu)秀的 Python 工具(比如大名鼎鼎的 linter Ruff)。uv 能做到:

  • 為你安裝任意 Python 版本
  • 安裝軟件包
  • 管理虛擬環(huán)境
  • 極速解決依賴沖突(這對(duì)大型項(xiàng)目至關(guān)重要)

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

它的速度快得驚人。它由 Rust 語言編寫,并且?guī)缀跫嫒菟胁僮飨到y(tǒng)或平臺(tái)。

安裝 uv

uv 的安裝非常簡單。有幾種方法,但我認(rèn)為最簡單的是這個(gè)單行命令。

對(duì)于 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 不會(huì)搞亂你現(xiàn)有的任何 Python 環(huán)境。它是一個(gè)完全獨(dú)立的工具,所以你可以放心地安裝并試用。

管理項(xiàng)目的 Python

無論開發(fā)什么 Python 項(xiàng)目,使用虛擬環(huán)境都是一個(gè)好習(xí)慣。

虛擬環(huán)境能將不同項(xiàng)目的代碼和依賴相互隔離開。以我的經(jīng)驗(yàn)來看,盡早養(yǎng)成這個(gè)習(xí)慣能省去未來很多麻煩。

uv 天生就會(huì)使用虛擬環(huán)境。因此,一旦你開始用 uv,上手虛擬環(huán)境也會(huì)變得非常容易。

uv 會(huì)根據(jù)你當(dāng)前目錄(或父目錄)中 pyproject.toml 文件的配置來構(gòu)建 Python 環(huán)境。

pyproject.toml 文件是指定 Python 項(xiàng)目依賴的標(biāo)準(zhǔn)、現(xiàn)代格式。一個(gè)最精簡的 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",

簡而言之,它只需要指定使用哪個(gè) Python 版本和一些依賴項(xiàng)。當(dāng)然,加上項(xiàng)目名稱和版本號(hào)也是個(gè)好主意。

(補(bǔ)充一點(diǎn):如果你的項(xiàng)目需要作為軟件包發(fā)布(例如發(fā)布到 pip 和 uv 用的 Python 軟件包索引 PyPI),pyproject.toml 文件是指定發(fā)布所需全部信息的現(xiàn)代方式。)

用 uv 創(chuàng)建新項(xiàng)目

要用 uv 啟動(dòng)一個(gè)新 Python 項(xiàng)目,你可以運(yùn)行:

uv init

這個(gè)命令會(huì)為你創(chuàng)建一個(gè)新項(xiàng)目,包含 pyproject.toml、README.md 和其他重要的模板文件。

這個(gè)命令還有很多變種,比如 uv init --bare(只創(chuàng)建 pyproject.toml)和 uv init --package(設(shè)置一個(gè)新的 Python 包)等等。

我建議你運(yùn)行 uv init --help 來查看所有選項(xiàng)。

當(dāng)你(已經(jīng))有了 pyproject.toml 文件

一旦你初始化了項(xiàng)目,或者項(xiàng)目里已經(jīng)有了 pyproject.toml 文件,使用 uv 就變得非常簡單。

你只需要在 pyproject.toml 文件所在的目錄中運(yùn)行:

uv sync



這個(gè)命令(實(shí)際上,如果你還沒運(yùn)行過,大多數(shù) uv 命令都會(huì))會(huì)執(zhí)行以下操作:

  1. 自動(dòng)安裝一個(gè)有效的 Python 版本。
  2. 在目錄下的 .venv 文件夾中安裝所有依賴,創(chuàng)建一個(gè)新虛擬環(huán)境。
  3. 在你的目錄中創(chuàng)建一個(gè) uv.lock 文件。該文件會(huì)保存每個(gè)已安裝包的確切、平臺(tái)無關(guān)的版本。這意味著你的同事可以完全復(fù)刻你的 Python 環(huán)境。

原則上,你可以像激活其他工具創(chuàng)建的虛擬環(huán)境那樣「激活」這個(gè)新環(huán)境。

但最「uv 風(fēng)格」的使用方式,是直接在任何命令前加上 uv run。uv run 會(huì)自動(dòng)為你匹配正確的虛擬環(huán)境,并用它來執(zhí)行你的命令。

例如,要運(yùn)行一個(gè)腳本,你不再需要:

source .venv/bin/activate

python myscript.py

你只需:

uv run myscript.py

這樣做的效果是完全一樣的。

同理,要使用像 Jupyter Lab 這樣的「工具」,你也不需要先「激活」環(huán)境再單獨(dú)運(yùn)行 jupyter lab。你只需在項(xiàng)目目錄中運(yùn)行:

uv run jupyter lab

添加依賴

你當(dāng)然可以直接手動(dòng)編輯 pyproject.toml 文件。uv 會(huì)檢測到變更并重新構(gòu)建你項(xiàng)目的虛擬環(huán)境。

但 uv 也提供了更簡單的方式來添加依賴。你只需運(yùn)行:

uv add numpy>=2.0

這樣就可以添加一個(gè)包,并(像上面那樣)指定版本限制。

這個(gè)命令會(huì)自動(dòng)為你修改 pyproject.toml 文件。uv add 功能也非常強(qiáng)大,支持從 git 或你電腦上的其他位置添加遠(yuǎn)程依賴(但這里我就不展開了)。

鎖定 Python 版本

最后,我認(rèn)為 uv 最有用的功能之一,是為你的項(xiàng)目鎖定一個(gè)特定的 Python 版本。

運(yùn)行這個(gè)命令:

uv python pin 3.12.9

這條命令會(huì)為你(以及其他任何使用 uv 的人)將當(dāng)前項(xiàng)目精確鎖定到 Python 3.12.9 版本。

這意味著你真的可以在多臺(tái)機(jī)器間復(fù)制完全一致的 Python 安裝環(huán)境。

uvx:跳過以上所有步驟,立即運(yùn)行工具!

但有時(shí)候,你可能只想快速運(yùn)行一個(gè)工具。

比如,臨時(shí)用 Ruff 檢查下代碼,或者在沒有環(huán)境時(shí)啟動(dòng)一個(gè) Jupyter notebook 服務(wù)器,甚至只是想快速啟動(dòng)一個(gè)裝了 pandas 的 IPython 會(huì)話來打開某個(gè)文件。

uv tool 命令(它的縮寫別名是 uvx)讓這一切變得異常簡單。

運(yùn)行像下面這樣的命令:

uvx ruff

uv 會(huì)自動(dòng)下載你需要的工具,并在一個(gè)一次性虛擬環(huán)境中運(yùn)行它。

一旦這個(gè)工具被下載過,uv 就會(huì)利用緩存,下次再運(yùn)行就會(huì)快如閃電。

我有很多場合會(huì)用到這個(gè)功能。一個(gè)常見的場景是,快速啟動(dòng)一個(gè)安裝了 pandas 的 IPython 會(huì)話(使用 --with 添加依賴),這樣我就可以快速打開并查看一個(gè) parquet 文件。例如:

uvx --with pandas,pyarrow ipython

或者,也許只是想啟動(dòng)一個(gè) Jupyter Lab 服務(wù)器,好讓我能快速打開學(xué)生發(fā)來的 Jupyter notebook:

uvx jupyter lab

老實(shí)說,還有太多其他奇怪的、一次性的用例,uvx 都能派上用場。

我絲毫不會(huì)(因?yàn)榭傆锰摂M環(huán)境)而感到不便,因?yàn)?uvx 總能在我需要時(shí)提供一張「萬能通行證」。

如果這還不能說服你:一些個(gè)人感想

我是在去年第一次發(fā)現(xiàn) uv 的。

當(dāng)時(shí),我正和我們其他可愛的開發(fā)者們一起構(gòu)建 The Astrosky Ecosystem。這是一個(gè)很棒的項(xiàng)目,旨在為天文學(xué)家們構(gòu)建開源的在線社交媒體集成。

但我們有多個(gè)開發(fā)者,大家在不同的操作系統(tǒng)上異步工作。很快,管理 Python 安裝就成了一項(xiàng)艱巨的任務(wù)。

對(duì)我們而言,uv 是一個(gè)極其強(qiáng)大的簡化工具,我們已在整個(gè)技術(shù)棧中全面使用它。

作為開發(fā)者,我們現(xiàn)在終于能使用完全一致的 Python 安裝環(huán)境了。這一點(diǎn)尤其重要,因?yàn)槲覀冇玫囊恍┌雽?shí)驗(yàn)性依賴,每個(gè)版本都有破壞性改動(dòng)。

在 GitHub Actions,我們正計(jì)劃使用 uv 來快速構(gòu)建 Python 環(huán)境并運(yùn)行單元測試。

在生產(chǎn)環(huán)境中,uv 已經(jīng)管理著我們所有服務(wù)器的 Python。

能夠確信,我們所有機(jī)器上的 Python 和軟件包安裝總能得到一致且正確的處理,這種感覺真是太棒了。

這就是為什么我說,uv 是近十年來 Python 生態(tài)系統(tǒng)發(fā)生的最好的事情。



你已經(jīng)用上 uv 了嗎?對(duì)此有什么看法?

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
從歐洲三駕馬車到?jīng)]落貴族:德國只用了4年時(shí)間!工業(yè)4.0變成0.4

從歐洲三駕馬車到?jīng)]落貴族:德國只用了4年時(shí)間!工業(yè)4.0變成0.4

蘇曼文史
2025-10-31 17:15:43
孫中山孫女回南京,發(fā)現(xiàn)父親故居被許世友改造成農(nóng)場,她有何反應(yīng)

孫中山孫女回南京,發(fā)現(xiàn)父親故居被許世友改造成農(nóng)場,她有何反應(yīng)

元哥說歷史
2025-10-31 16:20:03
中國女籃再遭沉重打擊!WCBA聯(lián)賽霸主退賽:4大國手恐無球可打?

中國女籃再遭沉重打擊!WCBA聯(lián)賽霸主退賽:4大國手恐無球可打?

籃球快餐車
2025-11-01 00:04:49
中國芯片取得重大技術(shù)突破,繞開EUV光刻機(jī),ASML徹底傻眼了

中國芯片取得重大技術(shù)突破,繞開EUV光刻機(jī),ASML徹底傻眼了

元爸體育
2025-10-31 12:23:40
iphone17國補(bǔ)至“清倉價(jià)”,蘋果雙十一第二波降價(jià)20點(diǎn)開始

iphone17國補(bǔ)至“清倉價(jià)”,蘋果雙十一第二波降價(jià)20點(diǎn)開始

濟(jì)寧生活網(wǎng)
2025-10-31 15:30:38
北電?;ê闷?, 身高169cm,體重50kg 美的讓人移不開眼

北電校花好漂亮, 身高169cm,體重50kg 美的讓人移不開眼

喜歡歷史的阿繁
2025-10-27 09:18:12
慘烈!9月中大型SUV銷量榜,理想L6丟冠,鈦7第4,普拉多第21

慘烈!9月中大型SUV銷量榜,理想L6丟冠,鈦7第4,普拉多第21

音樂時(shí)光的娛樂
2025-10-30 10:07:50
超標(biāo)近5000倍!浙江一地疾控緊急提醒:不要買!

超標(biāo)近5000倍!浙江一地疾控緊急提醒:不要買!

FM93浙江交通之聲
2025-10-31 12:28:31
期待,湖人隊(duì)中鋒德安德烈·艾頓如何看待NBA杯的開幕

期待,湖人隊(duì)中鋒德安德烈·艾頓如何看待NBA杯的開幕

好火子
2025-11-01 06:36:47
美國保守派評(píng)論員不滿斯威尼身著幾乎毫無遮掩的禮服,認(rèn)為其在此次活動(dòng)可能遭人算計(jì)

美國保守派評(píng)論員不滿斯威尼身著幾乎毫無遮掩的禮服,認(rèn)為其在此次活動(dòng)可能遭人算計(jì)

陳意小可愛
2025-11-01 02:58:35
千萬別讓“亞洲電詐王”陳志背后的保護(hù)傘們,跑了!

千萬別讓“亞洲電詐王”陳志背后的保護(hù)傘們,跑了!

兵叔評(píng)說
2025-10-26 14:43:13
千億夢(mèng)破碎!從62億營收到日虧百萬,為什么降價(jià)認(rèn)慫也救不了西貝

千億夢(mèng)破碎!從62億營收到日虧百萬,為什么降價(jià)認(rèn)慫也救不了西貝

墜入二次元的海洋
2025-10-28 09:11:16
陳奕迅女兒官宣分手:我們選擇退回朋友關(guān)系

陳奕迅女兒官宣分手:我們選擇退回朋友關(guān)系

暖心萌阿菇?jīng)?/span>
2025-10-31 19:42:47
這種豐滿的腿,穿緊身瑜伽褲真的好看嗎?

這種豐滿的腿,穿緊身瑜伽褲真的好看嗎?

小喬古裝漢服
2025-10-15 17:16:17
90歲老人自駕23年游遍全國,86歲老伴一路相伴:他16歲抗美援朝就會(huì)開車修車送彈藥糧草,我很放心

90歲老人自駕23年游遍全國,86歲老伴一路相伴:他16歲抗美援朝就會(huì)開車修車送彈藥糧草,我很放心

極目新聞
2025-10-31 07:27:04
中美談妥后,贏家還不知是誰,輸家卻至少有四位,第一個(gè)就是印度

中美談妥后,贏家還不知是誰,輸家卻至少有四位,第一個(gè)就是印度

薦史
2025-10-31 14:00:53
白天陪玩晚上陪睡?明碼標(biāo)價(jià)8000一次!高端伴游淪為色情交易溫床

白天陪玩晚上陪睡?明碼標(biāo)價(jià)8000一次!高端伴游淪為色情交易溫床

阿纂看事
2025-08-29 15:46:57
交棒倒計(jì)時(shí)一天,鄭麗文巧妙化解朱立倫難題,盧秀燕這回始料未及

交棒倒計(jì)時(shí)一天,鄭麗文巧妙化解朱立倫難題,盧秀燕這回始料未及

鐵錘簡科
2025-10-31 23:47:12
某房企總部被賣,集團(tuán)徹底垮了!

某房企總部被賣,集團(tuán)徹底垮了!

地產(chǎn)八卦
2025-11-01 06:58:53
一進(jìn)一出總價(jià)4億歐元!皇馬醞釀王炸簽約,解決內(nèi)訌,成銀河戰(zhàn)艦

一進(jìn)一出總價(jià)4億歐元!皇馬醞釀王炸簽約,解決內(nèi)訌,成銀河戰(zhàn)艦

阿泰希特
2025-10-31 11:58:23
2025-11-01 07:43:00
機(jī)器之心Pro incentive-icons
機(jī)器之心Pro
專業(yè)的人工智能媒體
11617文章數(shù) 142496關(guān)注度
往期回顧 全部

科技要聞

神舟飛船首次在軌實(shí)施載人3.5小時(shí)交會(huì)對(duì)接

頭條要聞

"臺(tái)獨(dú)"沈伯洋十分擔(dān)憂求助臺(tái)陸委會(huì):不敢離開臺(tái)灣

頭條要聞

"臺(tái)獨(dú)"沈伯洋十分擔(dān)憂求助臺(tái)陸委會(huì):不敢離開臺(tái)灣

體育要聞

在無數(shù)明星的注視下,他們踢著“意大利最好看的足球”

娛樂要聞

和龔俊演完《暗河傳》,她終于紅了

財(cái)經(jīng)要聞

以前買不起房,現(xiàn)在賣不起房

汽車要聞

東風(fēng)日產(chǎn)“油電同智”戰(zhàn)略首車 天籟·鴻蒙座艙亮相

態(tài)度原創(chuàng)

時(shí)尚
房產(chǎn)
親子
公開課
軍事航空

越遮越高級(jí),搞穿搭原來真不看臉?

房產(chǎn)要聞

實(shí)力破圈!這個(gè)豪宅交付,正在定義??谄焚|(zhì)樣本!

親子要聞

老人幫忙帶娃,最好在這個(gè)年齡段退出,否則傷害大,對(duì)娃成長不利

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

卡塔爾:加沙可能陷入“無戰(zhàn)無和”局面

無障礙瀏覽 進(jìn)入關(guān)懷版 欧美性黑人极品hd变态| japanese 少妇人妻| 久久自慰精品| 久久亚洲中文字幕无码| 日韩精品狠狠操吃瓜视频| 免费 爽 视频| 国产毛片一区二区三区不卡在线| 东京热无码一区二区三区分类视频| 国产舌乚八伦偷精品| 伊人狠狠干影院| 亚洲人成色4444在线观看| 激情文学亚洲日韩| 99人妻无码一区二区三区| 不卡av白浆在线观看| 超踫人人操人人操| 亚洲高清色图| 亚洲国产永久精品成人麻豆| 色悠悠在线视频| 久久久久毛片免费观看∨| 日韩精美天堂永久免费| 无码不卡免费看| 成人免费乱码大片a毛片| 日日噜噜夜夜狠狠va视频v| 日本加勒比在线| 亚洲精品色婷婷久久| 国产性爱av| 黄色无码午夜免费| 亚洲综合激情五月色一区| B真人三级片A| 免费a级毛片18禁网站app| 2020精品国产自在现线官网| 国内XXX69| 高级少妇影院| 老太太性开放bbwbbw| аⅴ资源天堂资源库在线| 亚洲国产日产无码精品| 成在人线av无码免观看麻豆| 美日韩边做边看| 日本护士野外xxxhd| 美女午夜福利视频一区二区| 色欲TV国产亚洲AV|