728x90

Poetry

Poetry는 Python 프로젝트의 의존성 관리 및 패키지 관리를 위한 보다 현대적이고 강력한 도구입니다. pyproject.toml 파일을 사용하여 설정과 의존성을 관리합니다.

주요기능

장점:

  • 강력한 의존성 해결: Poetry는 pyproject.toml 을 사용하여 의존성 해결과 관리에서 매우 효율적이고, 복잡한 의존성 충돌을 잘 해결합니다.

    • 이는 PEP 518 표준에 따라 Python 패키지의 구성을 정의하는 방법으로, 향후 여러 도구와의 호환성을 고려한 설정 방식입니다.
  • 통합된 패키지 관리: 패키지 배포와 버전 관리를 한 번에 할 수 있습니다. publish 명령어로 직접 PyPI에 패키지를 배포할 수 있어 편리합니다.

  • 자동화된 패키지 빌드: 프로젝트 빌드 과정에서 필요한 모든 파일과 의존성을 자동으로 생성하여 배포할 수 있습니다.

단점:

학습 곡선: Pipenv보다는 좀 더 많은 기능을 제공하지만, 그만큼 학습 곡선이 존재합니다.

호환성 문제: 일부 오래된 패키지나 라이브러리와의 호환성 문제를 겪을 수 있습니다.

설치방법

System requirements

  • Python 3.9 이상
  • Linux, macOS, Windows 지원

Installation

MacOS

1️⃣ poetry가 설치 되어 있지 않은 경우, 설치 합니다.

brew install poetry

2️⃣ 프로젝트 생성 (pyproject.toml)

poetry는 패키지관리를 위한 pyproject.toml 생성 부터 시작합니다.

① poetry init

패키지 생성을 위한 기본 정보를 대화형 기반으로 pyproject.toml 파일을 만들 수 있습니다.

poetry init

Options

  • --name: Name of the package.
  • --description: Description of the package.
  • --author: Author of the package.
  • --python Compatible Python versions.
  • --dependency: Package to require with a version constraint. Should be in format foo:1.0.0.
  • --dev-dependency: Development requirements, see --dependency.

② poetry new

Python 프로젝트에 적합한 디렉토리 구조를 만들어서 생성합니다.

poetry new <프로젝트 이름> 

as follows:

my-package
├── pyproject.toml
├── README.md
├── my_package
│   └── __init__.py
└── tests
    └── __init__.py

3️⃣ 패키지 관리

① 패키지 추가

poetry add <패키지명>

개발 의존성으로 패키지를 추가하고자 한다면, --dev 플래그 사용

poetry add --dev <패키지명>  

② 패키지 삭제

poetry remove <패키지명>

③ 패키지 조회

poetry show

poetry show --tree # 의존성 트리

poetry show --latest # 최신 버전도 함께 표시

poetry show --outdated # 업데이트가 가능한 패키지의 목록 표시

poetry show --no-dev # 개발 의존성을 제외하고 표시

4️⃣ 가상환경 생성 및 활성화

poetry env activate

Poetry 2.0 업데이트에 따른 주요 변경사항

poetry export:

  • Poetry 1.2 버전부터 poetry export 명령은 이제 기본 기능이 아니라 플러그인으로 제공됩니다.
  • poetry export를 사용하려면 poetry-plugin-export 플러그인을 별도로 설치해야 합니다.

poetry shell:

  • poetry shell 명령어도 더 이상 Poetry의 기본 명령어로 제공되지 않습니다.
  • 새로운 명령어인 poetry env activate를 사용하여 가상환경 활성화를 해야합니다.
  • poetry shell 명령어를 사용하고 싶다면, poetry-plugin-shell 플러그인을 설치하여 사용할 수 있습니다.

Reference

728x90
반응형

+ Recent posts