byteforce

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

UV 문서 · Guides

프로젝트 작업

Working on projects · 원문: docs.astral.sh/uv/guides/projects/

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

uv는 pyproject.toml 파일 정의를 통해 Python 프로젝트 관리를 지원합니다.

새 프로젝트 생성

uv init으로 프로젝트를 초기화합니다:

코드 · 명령
$ uv init hello-world
$ cd hello-world

또는 기존 디렉터리에서:

코드 · 명령
$ mkdir hello-world
$ cd hello-world
$ uv init

다음 파일과 디렉터리가 생성됩니다: - .git/ - .gitignore - .python-version - README.md - main.py - pyproject.toml

uv run으로 테스트하세요:

코드 · 명령
$ uv run main.py
Hello from hello-world!

프로젝트 구조

완전한 프로젝트의 구조는 다음과 같습니다:

코드 · 명령
.
├── .git/
├── .venv/
│   ├── bin
│   ├── lib
│   └── pyvenv.cfg
├── .gitignore
├── .python-version
├── README.md
├── main.py
├── pyproject.toml
└── uv.lock

pyproject.toml

프로젝트 메타데이터(metadata)를 담습니다:

코드 · 명령
[project]
name = "hello-world"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
dependencies = []

수동으로 편집하거나 uv add/uv remove 명령을 사용하세요. [tool.uv] 섹션을 통해 uv 옵션을 구성할 수 있습니다.

.python-version

가상환경(virtual environment) 생성 시 사용할 기본 Python 버전을 지정합니다.

.venv

프로젝트 의존성(dependency)을 포함하는 격리된 Python 환경입니다.

uv.lock

정확한 의존성 버전을 담은 크로스 플랫폼 락파일(lockfile)입니다. 이 TOML 파일은 uv가 관리하므로 직접 편집하지 마세요. 재현 가능한 설치를 위해 버전 관리에 커밋하세요.

의존성 관리

패키지(package)를 추가하려면:

코드 · 명령
$ uv add requests

버전 또는 대체 소스를 지정할 수 있습니다:

코드 · 명령
$ uv add 'requests==2.31.0'
$ uv add git+https://github.com/psf/requests

requirements.txt에서 마이그레이션하려면:

코드 · 명령
$ uv add -r requirements.txt -c constraints.txt

패키지를 제거하려면:

코드 · 명령
$ uv remove requests

패키지를 업그레이드하려면:

코드 · 명령
$ uv lock --upgrade-package requests

버전 확인

패키지 버전을 확인하려면:

코드 · 명령
$ uv version
hello-world 0.7.0

짧은 형식:

코드 · 명령
$ uv version --short
0.7.0

JSON 출력:

코드 · 명령
$ uv version --output-format json
{
    "package_name": "hello-world",
    "version": "0.7.0",
    "commit_info": null
}

명령 실행

uv run으로 스크립트나 명령을 실행합니다. 실행 전에 자동으로 락파일 동기화를 확인합니다:

코드 · 명령
$ uv add flask
$ uv run -- flask run -p 3000

Python 스크립트를 실행하려면:

코드 · 명령
# example.py
import flask

print("hello world")
코드 · 명령
$ uv run example.py

또는 수동으로 동기화한 후 환경을 활성화할 수도 있습니다:

macOS 및 Linux:

코드 · 명령
$ uv sync
$ source .venv/bin/activate
$ flask run -p 3000
$ python example.py

Windows:

코드 · 명령
PS> uv sync
PS> .venv\Scripts\activate
PS> flask run -p 3000
PS> python example.py

배포판 빌드

소스 및 바이너리 배포판을 생성하려면:

코드 · 명령
$ uv build
$ ls dist/
hello-world-0.1.0-py3-none-any.whl
hello-world-0.1.0.tar.gz

아티팩트는 dist/ 하위 디렉터리에 생성됩니다.

다음 단계

더 자세한 내용은 프로젝트 개념 문서와 명령 참조를 확인하세요.

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

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