Poetry
- Python 프로젝트의 의존성 관리와 패키징을 위한 도구.
특징
- 의존성 관리:
- pyproject.toml 파일을 사용하여 프로젝트의 의존성을 선언적으로 관리.
- 의존성 해결 및 버전 충돌 방지를 자동으로 처리.
- poetry.lock 파일을 통해 정확한 패키지 버전을 고정하여 일관된 환경을 보장.
- 가상 환경 관리:
- 프로젝트별로 독립된 가상 환경을 자동으로 생성하고 관리.
- 패키지 관리:
- 패키지 추가, 제거, 업데이트를 간단한 명령어로 수행 가능.
- 프로젝트 빌드 및 배포:
- 프로젝트 빌드와 PyPI 배포를 쉽게 할 수 있는 기능 제공.
- 사용 편의성:
- pip, virtualenv, setuptools 등 여러 도구의 통합 지원.
- 호환성:
- PEP 517 및 PEP 518 표준을 준수
PEP 517
- 빌드 시스템 요구사항을 명시하는 표준 방식을 정의
- 프로젝트의 빌드 시스템 요구사항을 명시하는 pyproject.toml 도입
- 빌드 시스템 요구사항을 지정하는 섹션인 [build-system] 테이블
- 빌드 시스템을 실행하는 데 필요한 최소 요구사항을 명시.
PEP 518
- 소스 트리에서 배포 가능한 아트팩트를 빌드하기 위한 표준 인터페이스를 정의.
- pyproject.toml의 [build-system] 테이블에 빌드를 수행할 Python 객체를 지정하는 build-backend 도입
- 표준 빌드 인터페이스: 빌드 백엔드가 구현해야 하는 표준 메서드들을 정의.
- 소스 배포(.tar.gz)와 wheel 생성을 위한 별도의 메서드를 정의.
- 프론트엔드와 백엔드 분리: 빌드 프로세스를 프론트엔드와 백엔드로 분리.
시스템 요구사항
- Python 3.8 이상
- Linux, macOS, Windows에서 동작
설치 방법
With Pipx
pipx 설치 (권장)
- pipx를 사용하여 Poetry를 전역적으로 설치하면서 가상 환경에 격리
pipx install poetry
고급 설치 옵션
- 특정 버전 설치:
pipx install poetry==1.2.0
- 병렬 버전 설치:
pipx install --suffix=@1.2.0 poetry==1.2.0
- 개발 버전 설치:
pipx install --suffix @main git+https://github.com/python-poetry/poetry.git@main
- 특정 버전 설치:
업데이트 및 제거
- 업데이트:
pipx upgrade poetry
- 제거:
pipx uninstall poetry
- 업데이트:
With the Official Installer
Linux, macOS, Windows (WSL)
|
|
Windows
|
|
참고 및 출처
Poetry
Introduction | Documentation | Poetry - Python dependency management and packaging made easy