hello

Poetry 사용법 정리

Poetry는 Python의 현대적인 패키지 및 의존성 관리자입니다. 복잡한 의존성 문제를 자동으로 해결하고, 가상 환경 관리, 패키지 빌드 및 배포까지 도와주는 도구입니다.

다음은 Python 패키지 관리자 Poetry에 대한 블로그 형식의 정리입니다. 초보자도 이해할 수 있도록 개념부터 설치, 사용법까지 친절하게 설명드리겠습니다.


📌 Poetry란?

Poetry는 Python의 현대적인 패키지 및 의존성 관리자입니다. 복잡한 의존성 문제를 자동으로 해결하고, 가상 환경 관리, 패키지 빌드 및 배포까지 도와주는 도구입니다.

✅ 주요 기능

  • 의존성 자동 관리 및 충돌 방지
  • 가상 환경 생성 및 관리
  • 프로젝트 초기화 및 구조 자동 생성
  • 빌드 및 퍼블리시 지원
  • pyproject.toml 기반의 설정 관리

🛠️ Poetry 설치 방법

🔸 macOS 사용자 (Homebrew)

brew install poetry

🔸 모든 플랫폼 공통 (스크립트 설치)

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

설치가 완료되면, poetry --version으로 설치 여부를 확인해보세요.


📁 Poetry로 프로젝트 시작하기

1. 새 프로젝트 생성

poetry new poetry-demo

📁 생성된 구조

poetry-demo
├── pyproject.toml         # 프로젝트 및 의존성 설정
├── README.rst             # 프로젝트 설명
├── poetry_demo/           # 실제 코드 위치
│   └── __init__.py
└── tests/                 # 테스트 코드
    ├── __init__.py
    └── test_poetry_demo.py

2. 기존 프로젝트에 Poetry 적용

poetry init

질문에 답하면서 pyproject.toml 파일을 생성하게 됩니다.


🧪 가상 환경(Virtualenv) 관리

가상 환경 생성

poetry env use python3

가상 환경 진입

poetry shell

프로젝트 내부에 가상환경 생성

poetry config virtualenvs.in-project true

이렇게 하면 .venv/ 폴더가 프로젝트 내에 생성됩니다.

현재 가상환경 정보 확인

poetry env info

가상환경 리스트 확인

poetry env list

가상환경 제거

poetry env remove <환경명>

⚙️ Poetry 설정 정보 확인

poetry config --list

📦 의존성 패키지 관리

패키지 검색

poetry search fastapi

패키지 추가

poetry add fastapi==0.111.0        # 일반 의존성
poetry add -D pylint               # 개발용 의존성 (-D)

직접 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

전체 업데이트

poetry update

특정 패키지 업데이트

poetry update fastapi

🌍 사용자 지정 패키지 레포지토리 설정

[[tool.poetry.repositories]]
name = "custom-repo"
url = "https://your.repo.url/simple"