C.W.K.
Stream
Lesson 05 of 05 · published

uv Wisdom

~10 min · uv, wisdom, production

Level 0초심자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

uv 어리지만 단단해. 이 룰들이 놀람 없이 채택하게 함.

venv 활성화 대신 uv run 사용. 가장 큰 단일 워크플로우 변화. 'cd project; uv run pytest' 가 'cd project; source .venv/bin/activate; pytest; deactivate' 대체. 머슬메모리 박아; 옛 거 obsolete 됨.

uv python pin 으로 Python 버전 핀. .python-version 작성. uv.lock 과 결합되어 프로젝트가 머신 간 재현 가능.

uv.lock commit. 이 quest 의 모든 다른 lockfile 과 같은 룰. uv.lock 이 텍스트, 꽤 안정, git 친화. 재현성 — gitignore 안 함.

CI 에 uv sync 사용. npm ci 또는 pnpm install --frozen-lockfile 와 같은 역할: strict, 빠름, lockfile drift 에 fail.

일회용 도구엔 uvx 사용. pipx run 과 Python 도구용 npx 대체. uvx ruff check . 가 ruff 를 프로젝트에 commit 없이 작동.

drop-in uv pip path 가 마이그레이션. 프로젝트가 uv-native (uv add + uv.lock) 로 전환 안 됐으면, uv pip install ... 가 워크플로우 변경 0 으로 10-100배 speedup. 그거 먼저 하고, 나중에 uv-native 로 마이그레이션.

Code

GitHub Actions: uv 를 install 단계로·yaml
# .github/workflows/ci.yml
name: ci
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: astral-sh/setup-uv@v3
        with:
          enable-cache: true
      - run: uv sync --frozen        # strict; lockfile drift 에 fail
      - run: uv run pytest
      - run: uv run mypy .
pip 프로젝트를 uv-native 로 마이그레이션·bash
# 기존 pip 프로젝트에서
cd my-pip-project

# 단계 1 — uv 초기화 (없으면 pyproject.toml 생성)
uv init --no-readme --bare

# 단계 2 — requirements.txt import
cat requirements.txt | xargs uv add

# 단계 3 — 검증, 실행, commit
uv run python -c "import myproject"
uv lock                           # uv.lock 생성
git add pyproject.toml uv.lock
git commit -m "chore: migrate to uv"

External links

Exercise

한 pip 기반 프로젝트 골라. venv 안에서 'uv pip install -r requirements.txt' 시도. 측정. 숫자가 레슨 — 그리고 보통 Python 개발자가 uv 에 commit 하는 순간. 그 다음 uv-native 마이그레이션을 별도 task 로 계획.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.