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

매일 치는 uv 명령

~13 min · uv, commands, workflow

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

uv 가 두 CLI surface 가짐. uv pip ... 가 drop-in pip 대체 — 모든 pip flag 작동. uv add / uv run / uv sync 가 모던 uv-native 워크플로우 — 새 프로젝트에 쓸 거.

uv init <name> 가 새 프로젝트 만듦 (pyproject.toml + .python-version + 초기 src 레이아웃). uv add <pkg> 가 dep 추가 — 필요하면 자동 venv 생성, 패키지 install, uv.lock 업데이트. uv add --dev <pkg> 가 dev dep. uv remove <pkg> 가 제거 (pip 와 다르게 깨끗하게 orphaned transitive deps 도 제거).

uv run <cmd> 가 프로젝트 venv 에서 명령 실행 — 자동으로 venv 활성화 후 실행. source .venv/bin/activate 더 이상 안 함. uv run pytest, uv run python main.py, uv run flask --app server run 다 그냥 작동.

uv python install <version> 이 관리되는 Python install — pyenv 대체. uv python pin <version> 이 이 프로젝트를 그 버전에 핀 (.python-version 작성). uv sync 가 uv.lock 에서 프로젝트의 정확한 상태 재현.

uvx <tool> 가 uv 의 npx / pipx run — install 없이 도구 실행. uvx ruff check ., uvx black . — commit 없이 도구 시도. uv tool install <tool> 이 도구를 글로벌 install (pipx install 대체).

Code

모던 uv 워크플로우 — 처음부터 새 프로젝트·bash
# 부트스트랩
uv init myproject && cd myproject
# pyproject.toml, .python-version, src/myproject/__init__.py 생성

# Python 버전 핀
uv python pin 3.13

# Deps 추가
uv add flask sqlalchemy
uv add --dev pytest ruff mypy

# 실행 — 자동으로 venv 활성화
uv run python -c "import flask; print(flask.__version__)"
uv run pytest
uv run flask --app server run

# 재현성 lock
# (uv.lock 이 'uv add' / 'uv lock' 으로 자동 생성 + 업데이트)
uv sync                    # uv.lock 이 말하는 정확히 install
Drop-in pip 대체·bash
# 기존 pip 기반 프로젝트에서 uv 를 더 빠른 pip 으로 사용 가능
uv pip install requests
uv pip install -r requirements.txt
uv pip freeze
uv pip list
uv pip uninstall requests

# 같은 flag, 같은 동작, 극적으로 빠름.
# 이게 마찰 0 마이그레이션 path.
Tools — pipx 대체·bash
# install 없이 도구 실행 ('pipx run' 대체)
uvx ruff check .
uvx black .
uvx httpie https://example.com

# 도구 글로벌 install ('pipx install' 대체)
uv tool install ruff
uv tool install black
uv tool list
uv tool upgrade --all

External links

Exercise

새 프로젝트 부트스트랩: 'uv init scratch && cd scratch && uv add flask requests pytest && uv run python -c "import flask; print(flask.__version__)"'. 전체 시퀀스 초 단위. pyproject.toml 과 uv.lock 봐 — 전체 재현성 스토리.

Progress

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

댓글 0

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

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