byteforce

CPN 한국어 자습서 · 외부 문서 한국어 미러

UV 문서 · Concepts

프로젝트 생성

Creating projects · 원문: docs.astral.sh/uv/concepts/projects/init/

아래는 원문을 한국어로 옮긴 미러입니다. 코드·명령은 원문 그대로이며, 가장 최신 정보는 하단 원문 링크에서 확인하세요.

uvuv init 명령어를 통해 프로젝트 초기화를 지원하며, 두 가지 기본 템플릿을 제공합니다.

프로젝트 유형

애플리케이션(Application)(기본값)은 웹 서버, 스크립트, CLI에 적합합니다. 다음 명령어로 생성합니다:

코드 · 명령
$ uv init example-app

이 명령어는 pyproject.toml, main.py, README.md, .python-version을 포함한 기본 구조를 생성합니다.

라이브러리(Library)는 다른 프로젝트가 배포하고 사용할 코드를 대상으로 합니다. --lib 플래그를 사용합니다:

코드 · 명령
$ uv init --lib example-lib

라이브러리는 자동으로 src/ 레이아웃을 사용하며, 타입 정보를 위한 py.typed 마커를 포함합니다.

패키지형 애플리케이션(Packaged Application)

CLI 도구나 설치가 필요한 프로젝트에는 --package 플래그를 추가합니다:

코드 · 명령
$ uv init --package example-pkg

이 명령어는 빌드 시스템(기본값: uv_build)이 포함된 src/ 디렉터리 구조를 생성하고, pyproject.toml에 엔트리 포인트를 정의합니다.

확장 모듈(Extension Module)

Rust 또는 C/C++ 코드가 포함된 프로젝트는 대체 빌드 백엔드(build backend)가 필요합니다. --build-backend로 지정합니다:

코드 · 명령
$ uv init --build-backend maturin example-ext

지원되는 백엔드에는 maturin(Rust)과 scikit-build-core(C/C++/FORTRAN/Cython)가 있습니다.

최소 프로젝트(Minimal Project)

--bare 옵션은 pyproject.toml만 생성합니다:

코드 · 명령
$ uv init example-bare --bare

버전 파일, README, 소스 디렉터리 생성을 건너뛰고 추가 메타데이터를 생략합니다.

대상 디렉터리(Target Directory)

프로젝트는 현재 작업 디렉터리 또는 지정된 대상 디렉터리에서 초기화됩니다. --directory를 사용하면 다른 작업 디렉터리를 설정할 수 있습니다. 대상 위치에 이미 pyproject.toml이 존재하면 오류가 발생합니다.

원문(영어): https://docs.astral.sh/uv/concepts/projects/init/ · 본 문서는 학습용 한국어 번역이며 원본의 권리는 원저작자(Astral)에게 있습니다.

원문(영어): https://docs.astral.sh/uv/concepts/projects/init/