Poetry
2024년 7월 9일 수정
≡ 목차 (Table of Contents)
이 글은 더이상 관리되지 않으며 대신 ⏍https://seorenn.github.io/article/python-poetry.html 의 글이 관리됩니다.
Poetry
Poetry는 파이썬(Python)용 패키징 겸 의존성 관리를 도와주는 도구다.
프로젝트 시작하기
poetry new PROJECT_NAME
이미 존재하는 프로젝트에 환경 만들기
poetry init
프로젝트에 의존성 추가
poetry add PACKAGE_NAME
특정 버전을 설치하려면 pip와 비슷하게 할 수 있다.
poetry add PACKAGE_NAME==x.y.z
개발 전용 패키지라면 --dev
플래그를 추가해주자.
poetry add --dev PACKAGE_NAME
패키지 버전 조건
설치한 패키지들은 pyproject.toml
파일에서 찾을 수 있다. 대충 아래와 같은 식이다.
[tool.poetry.dependencies] python = "^3.8" somepackage = "^3.10.0" [tool.poetry.dev-dependencies] pytest = "^5.2"
여기서 꺽쇠(^
)의 의미는 '메이저 업데이트를 제외한 최신 버전' 이라는 의미이다. 즉 ^3.10.0
이라는 의미는 3.x.y
버전 중 가장 최신 버전을 사용한다는 의미다. 다르게 표현하면 >=3.10.0
과 <4.0.0
을 만족하는 버전이라는 의미다.
의존 패키지 일괄 설치
poetry install
pip install -r requirements.txt
커맨드와 비슷한 용도다.
패키지 버전 일괄 업데이트
poetry update
물론 스펙에 적힌 한도 내에서 최신 버전으로 업데이트하는 명령이다.
의존성 삭제하기
poetry remove PACKAGE_NAME
프로젝트 실행하기
poetry run python main.py
virtualenv 셸 얻기
poetry shell
poetry 업그레이드 하기
poetry self update
poetry 자체를 업그레이드 하는 명령이니 오해하지 말자.
Docker에서 사용하기
Docker 컨테이너는 독립된 환경이므로 딱히 virtualenv 환경을 사용할 이유가 없다.
poetry config virtualenvs.create false
위 커맨드는 virtualenv 를 비활성화 시키므로 Dockerfile 등에 poetry install
하기 전에 미리 동작하도록 넣어두면 유용하다.