Poetry

특징

  1. 의존성 관리:
    • pyproject.toml 파일을 사용하여 프로젝트의 의존성을 선언적으로 관리.
    • 의존성 해결 및 버전 충돌 방지를 자동으로 처리.
    • poetry.lock 파일을 통해 정확한 패키지 버전을 고정하여 일관된 환경을 보장.
  2. 가상 환경 관리:
    • 프로젝트별로 독립된 가상 환경을 자동으로 생성하고 관리.
  3. 패키지 관리:
    • 패키지 추가, 제거, 업데이트를 간단한 명령어로 수행 가능.
  4. 프로젝트 빌드 및 배포:
    • 프로젝트 빌드와 PyPI 배포를 쉽게 할 수 있는 기능 제공.
  5. 사용 편의성:
    • pip, virtualenv, setuptools 등 여러 도구의 통합 지원.
  6. 호환성:
    • PEP 517 및 PEP 518 표준을 준수

PEP 517

  • 빌드 시스템 요구사항을 명시하는 표준 방식을 정의
  • 프로젝트의 빌드 시스템 요구사항을 명시하는 pyproject.toml 도입
  • 빌드 시스템 요구사항을 지정하는 섹션인 [build-system] 테이블
  • 빌드 시스템을 실행하는 데 필요한 최소 요구사항을 명시.

PEP 518

  • 소스 트리에서 배포 가능한 아트팩트를 빌드하기 위한 표준 인터페이스를 정의.
  • pyproject.toml의 [build-system] 테이블에 빌드를 수행할 Python 객체를 지정하는 build-backend 도입
  • 표준 빌드 인터페이스: 빌드 백엔드가 구현해야 하는 표준 메서드들을 정의.
  • 소스 배포(.tar.gz)와 wheel 생성을 위한 별도의 메서드를 정의.
  • 프론트엔드와 백엔드 분리: 빌드 프로세스를 프론트엔드와 백엔드로 분리.

시스템 요구사항

설치 방법

With Pipx

  1. pipx 설치 (권장)

    • pipx를 사용하여 Poetry를 전역적으로 설치하면서 가상 환경에 격리
    • pipx install poetry
  2. 고급 설치 옵션

    • 특정 버전 설치: 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
  3. 업데이트 및 제거

    • 업데이트: pipx upgrade poetry
    • 제거: pipx uninstall poetry

With the Official Installer

Linux, macOS, Windows (WSL)
1
$ curl -sSL <https://install.python-poetry.org> | python3 -
Windows
1
$ (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

참고 및 출처

Poetry

Introduction | Documentation | Poetry - Python dependency management and packaging made easy