Poetry 사용해보기


Poetry

  • Python 패키지 관리자
  • 복잡한 패키지 의존성을 관리하여 의존성 충돌 해결
  • Virtualenv 환경 제공
  • 빌드 / 퍼블리시 가능

설치하기

brew install poetry

or

curl -sSL https://install.python-poetry.org | python3 -

사용법

  • Poetry Project 생성
poetry new poetry-demo
# 결과물
poetry-demo
├── pyproject.toml
├── README.rst
├── poetry_demo
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_poetry_demo.py
  • 기존 Project를 Poetry로 전환
poetry init
  • 가상 환경 생성
poetry env use python3 
  • 가상 환경 진입
poetry shell
  • 가상 환경을 프로젝트 내부에서 생성하도록 설정
# 가상환경이 프로젝트 내부에 위치하도록 수정
poetry config virtualenvs.in-project true
  • 현재 가상환경 정보 조회
poetry env info 
  • 가상 환경 리스트
poetry env list 
  • 가상 환경 제거
poetry env remove 
  • config 조회
poetry config --list 

의존성 관리 방법

  • 의존성 패키지 탐색
poetry search fastapi 
  • command를 통한 의존성 주입
poetry add fastapi==0.111.0
poetry add -D pylint
  • pyproject.toml 수정
[tool.poetry.dependencies]
fastapi = "^0.111.0"
  • 의존성 패키지 제거
poetry remove fastapi
poetry remove -D fastapi
  • 설치된 패키지 리스트 조회
poetry show
poetry show --tree
poetry show --no-dev 
  • 의존성 패키지 설치 & 가상환경 구성
poetry install
  • 의존성 패키지 업데이트
poerty update
poetry update fastapi

패키지 Repo 수정

[[tool.poetry.repositories]]
name = "{레포지토리 이름}"
url = "{레포지토리 URL}"