Python 프로젝트를 진행하다 보면 다양한 패키지를 사용하게 되고, 이를 효과적으로 관리하는 것이 중요합니다. 패키지 의존성 관리, 가상환경 설정 등 번거로운 작업을 간편하게 해주는 도구로 Poetry를 소개합니다.
Poetry는 Python 패키지 관리를 위한 강력한 도구로, 다른 패키지 관리 도구에 비해 명확하고 일관된 환경을 제공합니다. 주요 기능은 다음과 같습니다.
Poetry는 Python 3.8 이상을 필요로 하며, Linux, macOS, Windows에서 동일하게 잘 작동하도록 하는 것이 목표입니다.
pipx는 Python CLI 애플리케이션을 글로벌하게 설치하면서도 가상환경에서 격리시켜주는 도구입니다.
pipx install poetry
Poetry 전용 가상환경을 생성하고 Poetry가 자체 환경을 관리할 수 있도록 해주는 사용자 정의 설치 관리자를 제공합니다.
curl -sSL https://install.python-poetry.org | python3 -
설치 후에는 PATH에 ${HOME}/.local/bin
(Unix) 또는 %APPDATA%\Python\Scripts
(Windows)를 추가해야 합니다.
Poetry를 pip와 venv 모듈을 사용하여 수동으로 설치할 수도 있습니다.
python3 -m venv $VENV_PATH
$VENV_PATH/bin/pip install -U pip setuptools
$VENV_PATH/bin/pip install poetry
poetry new [project-name]
: 새로운 Python 프로젝트 생성poetry init
: 기존 프로젝트에 pyproject.toml 파일 생성poetry install
: pyproject.toml에 정의된 의존성 패키지 설치poetry add [package-name]
: 의존성 패키지 추가poetry remove [package-name]
: 의존성 패키지 제거 poetry update
: 의존성 패키지를 최신 버전으로 업데이트poetry lock
: 의존성 잠금 파일(poetry.lock) 생성 또는 업데이트poetry show
: 설치된 패키지 목록 확인poetry run
: 가상환경에서 명령어 실행poetry shell
: 가상환경 활성화poetry build
: 프로젝트 빌드poetry publish
: 패키지를 저장소(PyPI)에 배포poetry new my-project
cd my-project
poetry add requests
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
poetry run python my_project/main.py
cd my-existing-project
poetry init
cat requirements.txt | xargs poetry add
poetry shell
python main.py
[tool.poetry]
name = "my-package"
version = "0.1.0"
description = "My awesome package"
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = "^3.8"
[tool.poetry.dev-dependencies]
pytest = "^7.0"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
poetry build
poetry publish
Poetry를 사용하면 가상환경 생성, 의존성 패키지 관리, 프로젝트 실행 등을 간편하게 수행할 수 있습니다. 또한 Poetry는 프로젝트 배포와 빌드도 지원하므로, Python 라이브러리와 애플리케이션 개발에 최적화된 도구라고 할 수 있습니다.
Poetry에 대해 더 자세히 알고 싶다면 공식 문서를 참고하시기 바랍니다. Bash, Fish, Zsh에 대한 자동완성 설정 방법, CI/CD에서의 활용 팁 등 유용한 정보가 많이 제공되고 있습니다.
Python 프로젝트 관리를 보다 편리하고 안정적으로 하고 싶다면 Poetry를 적극 활용해 보시기를 추천합니다.