
เริ่มต้นใช้งาน uv ตัวจัดการ Python แห่งยุค 2026
uv คืออะไร
uv เป็นเครื่องมือจัดการ Python แบบครบวงจรที่เขียนด้วย Rust ทำงานได้เร็วกว่า pip ถึง 10-100 เท่า สามารถใช้แทน pip, pip-tools, pipx, poetry, pyenv ได้ในตัวเดียว พัฒนาโดยทีม Astral ทีมเดียวกับที่ทำ Ruff (Python linter)
1. วิธีติดตั้ง uv บน macOS
ติดตั้งผ่าน Homebrew (แนะนำ)
brew install uv
ติดตั้งผ่าน Standalone Installer
curl -LsSf https://astral.sh/uv/install.sh | sh
ตรวจสอบว่าติดตั้งสำเร็จด้วย
uv version
อัปเดตเวอร์ชัน
# ถ้าติดตั้งผ่าน Homebrew
brew upgrade uv
# ถ้าติดตั้งผ่าน Standalone Installer
uv self update
2. รันเครื่องมือแบบง่าย ๆ ด้วย uvx
uvx คือคำสั่งสำหรับรันเครื่องมือ Python แบบไม่ต้องติดตั้งถาวร มันจะสร้าง virtual environment ชั่วคราวให้อัตโนมัติ ใช้เสร็จก็ทิ้งไป เหมาะมากสำหรับเครื่องมือที่ใช้เป็นครั้งคราว
รัน tool แบบครั้งเดียว
# รัน ruff (Python linter) โดยไม่ต้องติดตั้ง
uvx ruff check .
# รัน black (code formatter)
uvx black my_script.py
# รัน httpie
uvx httpie https://api.github.com
ติดตั้ง tool แบบถาวร
ถ้าเป็นเครื่องมือที่ใช้บ่อย ๆ สามารถติดตั้งถาวรได้ด้วย uv tool install
# ติดตั้ง ruff แบบถาวร
uv tool install ruff
# ติดตั้ง youtube-dl
uv tool install yt-dlp
# ติดตั้งจาก git repository
uv tool install git+https://github.com/maurosoria/dirsearch
รัน tool แบบระบุเวอร์ชัน
สามารถระบุเวอร์ชันของ tool ที่ต้องการรันได้เลย เหมาะสำหรับกรณีที่ต้องการใช้เวอร์ชันเฉพาะ หรือต้องการทดสอบกับหลาย ๆ เวอร์ชัน
# รัน ruff เวอร์ชันที่ต้องการ
uvx [email protected] check .
# รัน ruff เวอร์ชันล่าสุด
uvx ruff@latest check .
# รัน black เวอร์ชันเฉพาะ
uvx [email protected] my_script.py
ติดตั้งถาวรแบบระบุเวอร์ชันก็ทำได้เช่นกัน
uv tool install 'ruff==0.11.0'
uv tool install 'black>=24.0,<25.0'
ดูรายการเครื่องมือที่ติดตั้งไว้
uv tool list
3. ใช้งานกับ Python Project
สร้าง Project ใหม่
uv init my-project
cd my-project
uv จะสร้างไฟล์ให้อัตโนมัติ
my-project/
├── .python-version
├── README.md
├── main.py
└── pyproject.toml
เพิ่ม/ลบ Dependencies
# เพิ่ม package
uv add requests
uv add flask sqlalchemy
# เพิ่มแบบระบุเวอร์ชัน
uv add 'requests==2.32.0'
# เพิ่มจาก git
uv add git+https://github.com/psf/requests
# เพิ่มจาก requirements.txt ที่มีอยู่แล้ว
uv add -r requirements.txt
# ลบ package
uv remove requests
รัน Project
# รันไฟล์ Python ใน project
uv run main.py
# รัน framework command เช่น Flask
uv add flask
uv run -- flask run -p 3000
uv run จะจัดการ sync dependencies และสร้าง virtual environment ให้อัตโนมัติ ไม่ต้อง pip install หรือ source .venv/bin/activate เอง
จัดการเวอร์ชัน Python
# ดูเวอร์ชัน Python ที่มีให้ติดตั้ง
uv python list
# ติดตั้ง Python เวอร์ชันที่ต้องการ
uv python install 3.12
# ตรึงเวอร์ชัน Python ของ project
uv python pin 3.12
4. อื่น ๆ ที่น่าสนใจ
รัน Script พร้อม Dependencies แบบ Inline
สามารถประกาศ dependencies ไว้ในไฟล์ Python ได้เลย โดยใช้ inline metadata ตาม PEP 723
# /// script
# dependencies = [
# "httpx",
# ]
# ///
import httpx
resp = httpx.get("https://peps.python.org/api/peps.json")
data = resp.json()
print([(k, v["title"]) for k, v in data.items()][:10])
uv run fetch_peps.py
uv จะอ่าน dependencies จาก comment ในไฟล์แล้วติดตั้งให้อัตโนมัติ เหมาะมากสำหรับ script เล็ก ๆ ที่ไม่อยากสร้าง project เต็มรูปแบบ
รัน Script พร้อมระบุ Dependencies ผ่าน CLI
# รัน script พร้อมติดตั้ง rich ให้อัตโนมัติ
uv run --with rich example.py
# ระบุเวอร์ชันได้
uv run --with 'rich>12,<13' example.py
ใช้ uv ใน Docker
FROM python:3.12-slim
# ติดตั้ง uv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
# ติดตั้ง dependencies
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev
# คัดลอก source code
COPY . .
CMD ["uv", "run", "main.py"]
ใช้ uv แทน pip ได้เลย
สำหรับคนที่ยังชินกับ pip สามารถใช้ uv pip แทนได้เลย แค่เติม uv ข้างหน้า
uv pip install requests
uv pip install -r requirements.txt
uv pip freeze
uv pip uninstall requests
สรุป
uv เป็นเครื่องมือที่ช่วยให้การจัดการ Python ง่ายขึ้นมาก ตั้งแต่การติดตั้ง Python เอง การจัดการ dependencies ไปจนถึงการรันเครื่องมือต่าง ๆ ทั้งหมดนี้ทำได้ด้วยคำสั่งเดียว และที่สำคัญคือเร็วมาก ๆ ลองใช้ดูครับ
Ref
Related Articles



