uv
uv 0.4+uv CLI 빠른 참조 — Python 프로젝트 초기화, 의존성 관리, 가상 환경, lockfile 해석, 툴 러너, 자체 업데이트 — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.
명령어 39개
uv 설치
curl -LsSf https://astral.sh/uv/install.sh | shmacOS / Linux용 공식 원라인 설치 프로그램 — uv를 `~/.local/bin`에 설치하고 현재 셸의 PATH에 추가합니다.
curl -LsSf https://astral.sh/uv/install.sh | shpipx install uv관리되는 Python 설치에서 uv를 격리된 CLI 툴로 설치합니다(권장).
pipx install uvwinget install --id=astral-sh.uvWindows Package Manager(Windows 10/11)를 통해 uv를 설치합니다.
winget install --id=astral-sh.uv자체 업데이트
uv self updateuv를 최신 릴리스로 업데이트합니다. 다음 사전 릴리스를 받으려면 `--preview`을 사용하세요.
--preview; --stable
uv self updatePython 버전
uv python install <ver>Python 인터프리터를 uv의 관리 캐시(`~/.cache/uv` / `%LOCALAPPDATA%\uv`)에 다운로드합니다. `3.12`, `3.11.9`, 또는 nightly용 `cpython-3.13.0a5`도 전달할 수 있습니다.
3.12; 3.11.9; [email protected]; --mirror
uv python install 3.12uv python listuv가 다운로드할 수 있는 모든 Python 인터프리터(CPython, PyPy, free-threaded 빌드)를 나열합니다. 이미 가진 것만 필터링하려면 `--only-installed`를 사용하세요.
--only-installed; --all-versions; --arch; --os
uv python list --only-installeduv python find현재 디렉터리에서 uv가 사용할 인터프리터의 경로를 출력합니다. `.python-version`, `pyproject.toml`, 활성 virtualenv를 존중합니다.
<version>
uv python find 3.12uv python pin <ver>현재 프로젝트의 Python 버전을 고정합니다 — `.python-version`을 작성합니다. CI / Docker는 이를 읽어 로컬 인터프리터와 일치시킬 수 있습니다.
uv python pin 3.12프로젝트 초기화
uv init <name>새 Python 프로젝트를 스캐폴딩합니다: `pyproject.toml`, hello-world 모듈, `.gitignore`, 옵션으로 tests / README.
--package 배포 가능 패키지로 빌드; --lib 라이브러리로 빌드; --bare 소스 레이아웃 없음; --python <ver>; --no-readme; --no-pin-python
uv init my-app --package --python 3.12uv init --lib <name>라이브러리 프로젝트를 초기화합니다(src 레이아웃, `from <name> import ...` 노출).
uv init my-lib --lib동기화
uv sync`pyproject.toml`과 `uv.lock`에 선언된 모든 의존성을 프로젝트 virtualenv에 설치합니다. 멱등이며, `--frozen`은 lockfile 업데이트를 건너뛰고, `--locked`는 변경 시 실패합니다.
--frozen; --locked; --no-dev; --extra <name>; --all-extras; --group <name>; --no-install-project
uv sync --all-extrasuv lock설치하지 않고 `uv.lock` 파일을 해석하고 작성합니다. `pyproject.toml`과 일치하는지 검증하려면 `--check`를 사용하세요(CI에서 유용).
--check; --upgrade; --upgrade-package <pkg>; --frozen; --dry-run
uv lock --check추가 / 제거
uv add <pkg>`pyproject.toml`에 의존성을 추가하고 `uv.lock`을 업데이트하며 venv에 설치합니다.
--dev; --group <name>; --optional <extra>; --upgrade; --<specifier>; --editable <path>; --raw; --no-sync; --python <ver>
uv add requests richuv add 'requests>=2.32'버전 지정자(PEP 440)와 함께 의존성을 추가합니다. 셸에서 따옴표 사용을 권장합니다.
uv add 'requests>=2.32,<3'uv add --dev pytest ruff mypy개발 전용 의존성을 추가합니다 — `pyproject.toml`의 `[dependency-groups].dev]`에 들어갑니다.
uv add --dev pytest ruffuv add --group docs sphinx명명된 의존성 그룹에 추가합니다. 여러 그룹은 `uv sync --group docs --group lint`로 설치할 수 있습니다.
uv add --group lint ruff mypyuv remove <pkg>`pyproject.toml`, lockfile, venv에서 의존성을 제거합니다.
--dev; --group <name>; --optional <extra>
uv remove requests실행
uv run <cmd>프로젝트 virtualenv에서 명령을 실행합니다. venv가 없으면 자동으로 다시 만듭니다.
--with <pkg> 임시 의존성 추가; --with-requirements <file>; --no-sync; --locked; --frozen; --isolated; --refresh-package <pkg>; --package <name>
uv run python -m myappuv run pytest프로젝트 venv에 설치된 툴을 실행합니다 — 먼저 venv를 활성화할 필요가 없습니다.
uv run pytest -x --covuv run --with requests python -c 'print(requests.__version__)'다음에 캐시될 일회성 의존성으로 임시 스크립트를 실행합니다.
uv run --with httpx python -c 'import httpx; print(httpx.get("https://example.com").status_code)'uv run script.pyPEP 723 인라인 메타데이터를 사용하는 Python 스크립트를 실행합니다(uv는 상단의 `# /// script` 블록을 읽고 즉시 해석합니다).
--no-sync
uv run ./hello.pyvenv 관리
uv venv`.venv`에 프로젝트 virtualenv를 만듭니다. pip + setuptools를 함께 번들하려면 `--seed`를 사용하세요.
<path>; --python <ver>; --seed; --no-seed; --prompt <name>; --system-site-packages; --clear; --relocatable
uv venv --python 3.12uv venv --seedvenv를 만들고 pip / setuptools / wheel도 설치합니다 — venv 내부에서 `pip install` 워크플로우에 필요합니다.
uv venv --seed --python 3.11uv remove프로젝트 venv와 lockfile을 삭제합니다. 처음부터 다시 시작하려면 `uv sync`와 함께 사용하세요.
uv remove && uv syncCLI 툴 실행
uvx <tool>임시 환경에서 CLI 툴을 실행합니다(`uv tool run`의 별칭). 첫 사용 후 캐시됩니다.
<tool>@<ver>; --from <pkg>; --with <dep>; --upgrade; --quiet
uvx ruff check .uvx --from 'pycowsay>=2.0' cowsay 'Hello uv!'특정 패키지가 노출하는 툴을 실행합니다(패키지 이름과 CLI 이름이 다른 경우).
uvx --from 'sqlfluff' sqlfluff lint models/툴 설치
uv tool install <pkg>글로벌 CLI 툴을 격리된 환경에 설치합니다(pipx와 유사). 툴이 PATH에서 사용 가능해집니다.
--python <ver>; --with <dep>; --reinstall; --quiet; --force
uv tool install ruffuv tool list`uv tool install`로 설치된 모든 CLI 툴을 나열합니다.
uv tool listuv tool uninstall <pkg>`uv tool install`로 설치된 CLI 툴을 제거합니다.
--quiet
uv tool uninstall ruffuv tool upgrade설치된 모든 툴을 최신 버전으로 업그레이드합니다(`uv tool update-self`와 pin 파일 존중). 한 툴만 대상으로 하려면 이름을 전달하세요.
<tool>; --all; --reinstall; --quiet
uv tool upgrade --all인덱스 / 캐시
uv cache cleanuv의 모듈 캐시(`~/.cache/uv`)를 비웁니다. 전체 재다운로드를 강제하려면 `uv sync --refresh`와 함께 사용하세요.
<package>; --force
uv cache clean ruffuv cache diruv가 다운로드한 wheel에 사용하는 캐시 디렉터리를 출력합니다.
uv cache diruv pip install <pkg>pip 호환 모드로 진입합니다 — 기존 프로젝트를 마이그레이션하거나 툴이 여전히 `pip`을 호출할 때 유용합니다.
<pkg>; -r <requirements.txt>; -e <path>; --index-url <url>
uv pip install -r requirements.txtuv pip compile <in> -o <out>`requirements.in`을 고정된 `requirements.txt`로 해석합니다(`pip-tools`와 유사).
uv pip compile requirements.in -o requirements.txt --upgrade빌드 / 게시
uv build프로젝트의 소스 배포판과 wheel을 빌드합니다(`pyproject.toml`에 따라 hatchling / setuptools / poetry core 플러그인 사용).
-o <dir>; --wheel; --sdist; --no-byte-compile
uv builduv publish빌드된 아티팩트를 PyPI(또는 `--index`를 통해 사용자 정의 인덱스)에 업로드합니다.
--token <pypi-token>; --index <name>; --publish-url <url>; --trusted-publishing <on|off>
uv publish --token $PYPI_TOKEN진단
uv --versionuv 버전을 출력합니다.
uv --versionuv help모든 uv 하위 명령을 나열합니다.
uv helpuv help <subcommand>한 하위 명령의 전체 플래그 목록을 출력합니다.
uv help sync관련 명령어 치트시트
conda
Conda CLI 명령어 빠른 참조 — 환경 관리, 패키지 설치 / 검색, 채널, lockfile, 설정, 정리 — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.
명령어 40개
Conda 24+
pip
pip 패키지 설치 도구 CLI 빠른 참조 — install / uninstall / inspect 패키지, 가상 환경, requirements 파일, 설정, 인덱스 관리 — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.
명령어 37개
pip 24+
pytest
pytest CLI 빠른 참조 — 테스트 디스커버리, 선택, 픽스처, 마커, 병렬 처리, parametrize — 자주 쓰는 옵션과 실전 예시까지 함께 정리했습니다.
명령어 34개
pytest 8+
상표 및 사용 안내
본 명령줄 도구 치트시트 모음은 오픈 커뮤니티 참고 자료입니다. 본 문서에서 언급되는 도구의 명칭, 로고, 상표(예: Git™, Docker™, Kubernetes®, kubectl, PostgreSQL®, MySQL®, Redis™, MongoDB®, Linux™, PowerShell™, Vim™ 등)는 각 권리자의 자산이며, 본 문서에서는 식별 및 참고 목적のみで 사용됩니다.
본 치트시트의 모든 내용은 독립적으로 작성된 단순화된 자체 완결형 참고 자료이며, 어떠한 공식 문서와도 계열·인정·출처 관계가 없습니다. 명령 목록, 플래그 설명, 예제는 모두 저자의 원본 단순화이며, 권위 있는 정보가 필요한 경우 각 도구의 공식 문서를 참조하시기 바랍니다.
명령 구문 및 옵션 플래그는 도구 버전에 따라 다를 수 있습니다. 표시되는 버전 태그는 안정 릴리스를 반영하며, 다른 버전에서는 동작이 다를 수 있습니다. 본 치트시트는 상표권자의 어떠한 선호나 권장도 의미하지 않습니다.
상표권자 또는 저작권자가 사이트의 일부 내용에 대해 권리 침해가 있다고 판단하시는 경우 [email protected]으로 이메일을 보내 주십시오. 유효한 권리 증명을 받은 후 합리적인 기간 내에 관련 내용을 수정하거나 삭제하겠습니다.
본 사이트는 사이트 정보의 이용으로 인해 발생하는 어떠한 직접적 또는 간접적 손해에 대해서도 법적 책임을 지지 않습니다.
uv 소개
uv는 Astral(ruff와 Python 타입 검사기 ty 팀)이 Rust로 만든 극도로 빠른 Python 패키지 및 프로젝트 매니저입니다. 2024년에 처음 출시되었으며, pip, pip-tools, pipx, pyenv, virtualenv, 그리고 Poetry / pdm의 일부까지 한 바이너리로 대체하는 것을 목표로 합니다. 다운로드를 병렬화하고 글로벌 모듈 캐시(`~/.cache/uv`)를 사용해 pip보다 10-100배 빠르게 패키지를 설치합니다. uv는 표준 `pyproject.toml`(PEP 621)과 더 새로운 PEP 723 인라인 스크립트 메타데이터(자체 의존성을 선언하는 단일 파일 스크립트)를 사용합니다. macOS, Linux, Windows에서 동작하며, 약 30MB의 단일 바이너리(homebrew / pipx-installer / curl-install.sh / winget)로 제공됩니다. uv는 코드를 어디에도 업로드하지 않으며, 설정된 Python 패키지 인덱스(`--index-url`, 기본 PyPI)와만 통신합니다.
치트시트 버전 1.0.0