uv 完整教學 2026:Rust 寫的極速 Python 套件管理器,一個指令取代 pip、poetry、pyenv、pipx

uv 是 Astral 用 Rust 打造的 Python 套件與專案管理器,安裝與解析速度比 pip 快 10-100 倍,一個工具就能取代 pip、pip-tools、poetry、pyenv、pipx 與 virtualenv。本文從安裝、專案管理、Script 執行、Python 版本管理到 pip 相容模式,帶你完整實戰。

  • Dennis
  • 6 分鐘閱讀
uv 完整教學 2026:Rust 寫的極速 Python 套件管理器,一個指令取代 pip、poetry、pyenv、pipx

結論

uv 是一個用 Rust 寫的 Python 套件與專案管理器,安裝與解析依賴比 pip 快 10-100 倍,並且一個工具就能取代 pip、pip-tools、pipx、poetry、pyenv 與 virtualenv。 安裝只要一行指令(curl -LsSf https://astral.sh/uv/install.sh | sh),之後無論是開新專案、跑 Python 腳本還是管理多個 Python 版本,都用同一個指令搞定。

為什麼 2026 年大家都在推 uv?

如果你寫 Python,一定遇過這些鳥事:

  • pip install 慢到可以先去泡杯咖啡
  • 要管理多個 Python 版本,得另外裝 pyenv
  • 想跑個 CLI 工具(比如 ruff、youtube-dl),還要 pipx 或開虛擬環境
  • 專案要用 poetry,但 poetry 解析依賴也是慢吞吞
  • pip freeze 之後發現環境亂成一鍋粥,根本不知道裝了什麼

uv 的答案很粗暴:這些工具我全包了,而且我比它們都快。 它是 Astral(Ruff 的開發團隊)用 Rust 寫的,GitHub 星數超過 8.9 萬(2026 年 8 月),從 2023 年 10 月誕生到現在,已經被大量專案在生產環境採用。

flowchart TD
    subgraph 傳統 Python 工具鏈
        A[pip / pip-tools<br/>安裝與鎖定依賴]
        B[virtualenv<br/>虛擬環境]
        C[pyenv<br/>Python 版本管理]
        D[poetry / pipenv<br/>專案管理]
        E[pipx<br/>CLI 工具執行]
    end
    A --> F[各自為政、速度慢<br/>學習成本高]
    B --> F
    C --> F
    D --> F
    E --> F
    F --> G[uv 一個工具全部取代<br/>⚡ 快 10-100 倍]

安裝 uv(支援 macOS / Linux / Windows)

# macOS 和 Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# 或者用 pip(如果已經有 Python)
pip install uv

安裝後會產生 uvuvx 兩個指令,uv self update 可以隨時更新自己。完全不需要先裝 Rust 或 Python——uv 自己就會下載管理 Python。

實戰一:專案管理(取代 poetry + pip + virtualenv)

uv 的專案管理模式,就是「開專案 → 加依賴 → 跑指令」一條龍:

# 開新專案
uv init example
cd example

# 加依賴(自動建立 .venv 虛擬環境)
uv add ruff
# Resolved 2 packages in 170ms
# Installed 2 packages in 1ms

# 跑專案內的指令(自動使用 .venv)
uv run ruff check

# 鎖定依賴版本(產生 uv.lock,跨平台一致)
uv lock

# 同步環境到 lockfile 狀態
uv sync

看到那個 Resolved 2 packages in 170ms 了嗎?同樣的事情,pip 常常要花好幾秒甚至幾十秒。uv 的 lockfile 是「universal lockfile」——在 macOS 上鎖的版本,Windows 和 Linux 也保證一致,團隊協作不再出現「我這裡跑得動你那邊不行」。

常用專案指令速查

指令作用
uv init <名稱>建立新專案
uv add <套件>加依賴並安裝(自動建 .venv)
uv remove <套件>移除依賴
uv run <指令>在專案環境中執行指令
uv lock產生 / 更新 uv.lock
uv sync讓環境完全符合 lockfile
uv tree顯示依賴樹

實戰二:單檔 Script 直接跑(取代手動建環境)

這是我覺得 uv 最「神」的功能:在 Python 檔案裡直接宣告依賴,uv 自動建隔離環境幫你跑。

# example.py
# /// script
# requires-python = ">=3.11"
# dependencies = ["requests"]
# ///
import requests
print(requests.get("https://astral.sh").status_code)
# 用 uv 加依賴到 script 的 metadata
uv add --script example.py requests

# 直接跑——uv 自動建環境、裝依賴、執行
uv run example.py
# Reading inline script metadata from: example.py
# Installed 5 packages in 12ms
# 200

以後分享單檔工具腳本,把 # /// script 區塊寫進檔案頭,任何人拿到都能一鍵執行,不用再寫落落長的 README 安裝教學。

實戰三:執行 CLI 工具(取代 pipx)

uvxuv tool run 的縮寫,等同「免安裝版 pipx」:

# 臨時跑一次(用完即丟,不污染環境)
uvx pycowsay 'hello world!'

# 長期安裝某個 CLI 工具
uv tool install ruff
ruff --version
# ruff 0.5.0

常見用法:uvx youtube-dl <網址>uvx black .uvx pre-commit run --all-files。想試哪個工具就試哪個,系統永遠乾乾淨淨。

實戰四:Python 版本管理(取代 pyenv)

uv 可以直接下載、安裝、切換 Python 版本:

# 一次安裝多個版本
uv python install 3.12 3.13 3.14

# 在目前目錄釘選版本(產生 .python-version)
uv python pin 3.11

# 用指定版本建立虛擬環境
uv venv --python 3.12.0

# 用特定版本跑指令
uv run --python pypy@3.8 -- python --version

連 PyPy 都支援。從此再也不用 brew install pyenv、pyenv install 編譯半小時了。

實戰五:pip 相容介面(無痛遷移)

uv 提供與 pip 完全相容的介面,改個字首就能享受 10-100 倍加速,既有工作流程完全不用改:

# 舊寫法 → 新寫法
pip install requests        →  uv pip install requests
pip install -r req.txt      →  uv pip install -r req.txt
python -m venv .venv        →  uv venv

# 進階:把 requirements.in 編譯成跨平台 requirements.txt
uv pip compile requirements.in --universal --output-file requirements.txt

# 同步環境到鎖定狀態
uv pip sync requirements.txt

對 CI/CD 特別有感:原本 pip 安裝要 2-3 分鐘的 job,換成 uv 常常 10 秒內完成。

uv vs 傳統工具總比較

面向uvpippoetrypipenvpyenvpipx
速度(解析/安裝)⚡ 10-100x1x1x
專案管理 + lockfile✅ universal
Python 版本管理✅ 內建部分
CLI 工具執行✅ uvx
單檔 Script 執行✅ inline metadata
Workspaces 多專案✅ Cargo 風格
語言RustPythonPythonPythonShell/PythonPython
需要額外工具搭配不需要+venv+pyenv+pipx+pyenv+pyenv+venv+venv

進階技巧

1. 全域快取,省磁碟空間

uv 用單一全域快取(~/.cache/uv)做依賴去重——10 個專案共用同一個 requests,磁碟只存一份。實測能省下大量空間,尤其是裝過很多 ML 套件的機器。

2. Workspaces(Cargo 風格多專案)

大型專案可以拆成多個子套件一起管理:

uv init --workspace my-monorepo
cd my-monorepo && uv add --package pkg-a pkg-b

3. CI/CD 加速

GitHub Actions 或 GitLab CI 裡直接:

- uses: astral-sh/setup-uv@v6
- run: uv sync --frozen   # 完全照 lockfile,不重新解析
- run: uv run pytest

--frozen 模式保證 CI 用的就是 lockfile 版本,快又穩。

常見問題 FAQ

Q:uv 怎麼唸? A:唸「you-vee」(/juː viː/),不是「優夫」。

Q:uv 夠穩定嗎?可以上生產嗎? A:可以。官方有明確的版本政策,uv 已被大量開源專案與企業生產環境採用,README 明說 “uv is stable and widely used in production”。

Q:公司還在用 pip,我能混用嗎? A:可以。uv pip 介面就是設計來無痛取代 pip 的,requirements.txt 照用,只是安裝變快。

Q:uv 要錢嗎? A:完全開源,Apache-2.0 / MIT 雙重授權。

Q:它跟 ruff 是什麼關係? A:同一家公司(Astral)出品。Ruff 是極速 Python linter,uv 是極速套件管理器,都是 Rust 生態「重寫 Python 工具鏈」的代表作。

白話總結

如果你還在忍受 pip 的龜速和 poetry 的解析地獄,2026 年真的沒有理由不試 uv:一行指令安裝、五個工具合一、速度 10-100 倍起跳。從「開新專案」到「跑單檔腳本」到「管理 Python 版本」,全部一個指令搞定。對照組可以看本站的 Mojo 1.0 教學——同樣是新一代 Python 生態工具,方向不同但精神一致;資料分析場景則推薦搭配 DuckDB 完整教學,兩個工具合體後,輕量資料處理可以完全離開 Jupyter 的慢速地獄。

延伸閱讀

資料來源

📬 訂閱 most.tw 電子報

每週精選 AI 工具教學與技術乾貨,直接送到你的信箱。免費、隨時可退訂。

💬 有問題想討論?加 LINE 聯絡我

歡迎透過 LINE 官方帳號直接留言,我會盡快回覆你的問題。

加入 LINE 好友