[筆記] UV 基礎使用
pip 會有一些痛點
- 無法釐清主要套件與dependencies
- 主要套件有共同的dependencies 容易產生衝突
若使用 pyproject.toml 配合uv 可以解決這個問題
quickstart
創建一個基礎的toml
[project]
name = "demo_project"
version = "0.1.0"
description = "for demo uv"
readme = "readme.md"
requires-python = ">=3.12"
uv add fastapi
# It actually does
- create
- update pyproject.toml
- analyze all dependencies
[project]
name = "demo_project"
version = "0.1.0"
description = "for demo uv"
readme = "readme.md"
requires-python = ">=3.12"
dependencies = [
"fastapi>=0.121.0",
]
uv 基礎使用
uv python list
# 目前uv支援的python版本
uv init -p <python版本>
# uv init -p 3.12
# 初始化
# 1. toml template
# 3. .python-version 若要換python版本,可直接編輯
# 4. .hello.py 沒用,可刪
uv add <套件名稱>
# uv add pydantic
# 實際上會
# 1. 創建虛擬環境 .venv
# 2. 更新 pyproject.toml dependencies
uv add --dev
# 安裝開發依賴 例如pytest black ...
uv tree
# 顯示依賴關係
uv tool install <套件名稱>
# 安裝工具類的套件,不會在該虛擬環境,而是在系統中創建,且為獨立,不會與其他套件衝突
uv tool list
uv upgrade
# 升級特定套件,會自動整體的dependencies
# uv upgrade fastapi@0.111.5
遷移環境
需打包
pyproject.tomluv.lock- 該專案相關檔案
uv sync
# 安裝環境
uv sync --dev
# 安裝開發工具環境