Skip to content
Go back

🚀 比 pip 還快 100 倍?Python 套件管理新神器:uv

Table of contents

Open Table of contents

前言

在 Python 生態系中,套件管理工具的快速演進並不罕見,從最初的 pip 到較為進階的 poetrypipenv,各家都有其優勢與特色。然而,近期有一項新工具正迅速竄起,並以「下載套件速度比 pip 快 100 倍」的標語博得不少關注。這款工具名為 uv,是由開發知名靜態分析器 Ruff 的 Astral 團隊所打造,並在社群中獲得相當正面的評價。

本文將介紹 uv 的核心概念、優勢,以及如何開始使用。若您正為套件安裝或 Python 版本管理等問題所困擾,建議務必閱讀本篇精華,或許能夠為您的開發流程帶來大量效率提升。


為什麼選擇 uv?

1. 速度優勢

uv 最引人注目的特色在於其安裝速度顯著優於傳統工具。開發團隊採用了平行下載與快取機制,使得多個依賴套件能夠同時取得與安裝,大幅縮短等待時間。實際使用下來,安裝大型科學運算套件(如 pandas、numpy 等)幾乎在數秒內完成,與過去動輒數十秒或更久的等待相比,確實有顯著差異。

2. 一站式整合

除了安裝速度之外,uv 提供了一站式的工具整合,包括:

這些功能能夠讓開發者減少在多個工具之間切換的困擾,於同一介面下完成大多數日常操作。

3. 開發與維運的便利

uv 的快取機制在 CI/CD 或容器化部署情境中特別實用。針對頻繁重建環境的流程(例如在 Docker 建置或雲端流水線上),uv 的高效率下載與快取能在整體執行時間上有明顯的縮短,進而節省部署成本、提升開發者體驗。


如何開始使用 uv?

以下簡要介紹 uv 的使用步驟,讓您能快速上手。

1. 安裝 uv

Mac 或 Linux

在 Mac 或 Linux 系統上,可以使用下列指令安裝 uv:

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

Windows

Windows 用戶則可使用 PowerShell 指令進行安裝:

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

安裝完成後,您就能於終端機透過 uv 命令存取其所有功能。

2. 建立新專案

若您想使用 uv 從零開始建立一個新的 Python 專案,可透過以下指令:

# 建立專案結構
uv init my-project
cd my-project

# 建立虛擬環境
uv venv

執行上述指令後,專案目錄 my-project 裡即會包含專案設定檔、虛擬環境及必要的初始檔案。相比以往需要分別安裝虛擬環境、產生需求檔及設定專案結構的流程,uv 將這些步驟統整在單一工具中。

3. 安裝與管理套件

想要安裝 Flask?只需一行指令:

uv add flask

同樣地,一次安裝多個常見的科學運算與繪圖套件也非常直覺:

uv add pandas numpy matplotlib

若您需要安裝開發期間使用的工具套件(例如測試或格式化工具),可以加上 --dev 參數:

uv add pytest black --dev

整體操作與現行一般工具相仿,但由於 uv 採用平行化下載,大部分安裝流程都能在極短時間內完成。


從現有工具遷移

如果您已經在現有專案中使用 pip、pipenv 或 poetry,uv 也提供了平滑的轉移方式。

pip 使用者:

過去由傳統 pip 安裝套件時,命令如下:

pip install requests

現在只需在前方加上 uv

uv pip install requests

即可沿用已有的 pip 安裝邏輯,同時享有 uv 的加速效果。

pipenv 與 poetry 使用者:

無論是 pipenv 或 poetry,皆可直接以 uv 的安裝命令取代:

uv add requests

若您的專案原本使用 Pipfilepoetry.lock 管理依賴,可以先匯出或參考其套件清單,再使用 uv 來重新安裝,同步您的依賴項目。


實用技巧

  1. 快速切換 Python 版本 uv 也整合了 Python 版本管理。您可以使用以下指令安裝特定版本:

    uv python install 3.11
    uv python use 3.11

    這對同時維護多個 Python 專案或測試舊版相容性的開發者而言相當方便。

  2. 快速建立虛擬環境 除了 uv venv 之外,也可直接採用:

    uv venv
    source .venv/bin/activate

    即時啟用虛擬環境,不再需要記住過多繁複指令。

  3. 安裝依賴更輕鬆 uv 提供 pip sync 功能,同步安裝 requirements.txt 裡指定的所有套件:

    uv pip sync requirements.txt

    有效避免手動逐一輸入套件名稱的麻煩。


注意事項

  1. .venv/ 加入 .gitignore 建議將所有虛擬環境檔案夾排除在版本控制之外,保留乾淨的版本庫。

  2. 維護依賴清單 雖然 uv 使用方便,但定期更新並檢視需求檔(requirements.txt 或其他設定檔)仍十分重要,有助於確保依賴關係可持續被正確管理。

  3. 適應新工具流程 第一次使用 uv 可能需要投入少許時間理解其使用方式與設定檔結構。然而,熟悉之後,開發流程將會更為順暢、高效。


結語

綜觀整體而言,uv 的出現為 Python 開發者帶來了一項新選擇,特別是在套件管理與安裝速度上,提供了相當明顯的優勢。不僅具備平行化下載、快取管理等強大機制,也融合了多種常見功能,讓使用者能夠在單一介面中完成核心工作。

對於需要頻繁建立與部署虛擬環境,或是對安裝速度有較高要求的專案情境而言,uv 確實值得一試。它能有效降低等待時間,同時亦能提高開發者的生產力。建議您儘早嘗試,若有更多想法或使用心得,歡迎在下方留言或與社群分享,一同探索這款新一代工具所帶來的便利與價值。


Share this post on:

Previous Post
Leetcode 1524 - Number of Sub-arrays With Odd Sum