The pyproject.toml File
Python 프로젝트의 구성 정보와 빌드 시스템 요구 사항을 정의하는 표준화된 구성 파일.
TOML 형식을 사용하며 프로젝트의 메타데이터와 의존성을 중앙 집중적으로 관리한다.
주요 장점:
- 특정 빌드 시스템에 종속되지 않는 표준화된 설정 파일.
- TOML 형식을 사용하여 가독성이 높고 관리가 용이하다.
- 프로젝트의 모든 설정을 한 곳에서 관리할 수 있어 편리하다.
pyproject.toml은 PEP 518, PEP 621 등의 파이썬 표준 제안에 의해 정의되었으며, 현대적인 파이썬 프로젝트 관리에 필수적인 요소로 자리잡고 있다.
역할
프로젝트 메타데이터 관리:
- 프로젝트 이름, 버전, 설명, 저자 등의 기본 정보를 포함한다.
- 라이선스, 키워드, 프로젝트 URL 등의 추가 정보도 저장할 수 있다.의존성 관리:
- 프로젝트에 필요한 라이브러리와 그 버전을 명시한다.
- 개발 환경과 런타임 환경의 의존성을 분리하여 관리할 수 있다.
빌드 시스템 설정:
- 프로젝트 빌드에 필요한 도구와 설정을 지정한다.
- setuptools, poetry, flit 등 다양한 빌드 백엔드를 선택할 수 있다.
개발 도구 설정:
- 테스트 프레임워크, 코드 포맷터, 린터 등의 개발 도구 설정을 포함할 수 있다.
패키지 구조 정의:
- 프로젝트에 포함될 파일과 디렉토리를 지정할 수 있다.
스크립트 및 엔트리 포인트 정의:
- 커맨드 라인 스크립트나 애플리케이션의 시작점을 설정할 수 있다.
|
|
주요 섹션 설명
[build-system]
섹션
프로젝트의 빌드 시스템을 정의한다.
Poetry를 사용하여 프로젝트를 관리하는 경우, 다음과 같이 설정한다.
requires
는 빌드에 필요한 패키지를 지정한다.build-backend
는 빌드 백엔드를 지정한다.
[project]
섹션
프로젝트의 이름, 버전, 설명, 저자 정보, 의존성 등 기본적인 메타데이터를 정의한다.
이를 통해 패키지의 배포 및 관리를 효율적으로 수행할 수 있다.
name
: 프로젝트의 이름을 지정.version
: 프로젝트의 버전을 지정.description
: 프로젝트에 대한 간단한 설명을 작성.authors
: 프로젝트의 저자를 명시.dependencies
: 프로젝트가 의존하는 패키지와 그 버전을 지정.
[tool]
섹션
Linter, type checker, formatter 등 다양한 개발 도구의 설정을 통합하여 관리할 수 있게 한다.
개발 환경 설정
테스트 설정
Poetry
Poetry를 사용하여 프로젝트를 관리하는 경우, 다음과 같이 설정한다.
[tool.poetry]
섹션
프로젝트의 메타데이터와 의존성을 정의
name
: 프로젝트의 이름을 지정.version
: 프로젝트의 버전을 지정.description
: 프로젝트에 대한 간단한 설명을 작성.authors
: 프로젝트의 저자를 명시.dependencies
: 프로젝트가 의존하는 패키지와 그 버전을 지정.dev-dependencies
: 개발 환경에서만 필요한 의존성을 정의.
[tool.poetry.scripts]
섹션
설치 시 생성될 콘솔 스크립트를 정의한다.
my-script
라는 명령어를 생성하며, 이는 my_package.module
모듈의 main
함수를 실행한다.
[tool.poetry.extras]
섹션
선택적 의존성 그룹을 정의하여, 사용자가 필요에 따라 추가 기능을 설치할 수 있도록 한다.
사용자는 mysql
또는 pgsql
옵션을 선택적으로 설치할 수 있다.
[tool.poetry.urls]
섹션
프로젝트와 관련된 URL을 정의