티스토리 뷰
✅ Poetry란?
Poetry는 Python 프로젝트의
패키지 관리, 의존성 관리, 가상환경 관리, 빌드/배포까지
모두 통합 관리할 수 있는 현대적인 개발 도구입니다.
📌 왜 써야 하나요?
기존 방식 Poetry 방식
| pip, requirements.txt | pyproject.toml 하나로 관리 |
| virtualenv 따로 설치 | 가상환경 자동 생성/관리 |
| 버전 충돌 수동 해결 | 의존성 자동 분석 & 잠금 |
| setup.py, MANIFEST.in | 필요 없음 (자동 생성) |
✅ 설치 방법
▶️ 공식 설치 명령어
curl -sSL https://install.python-poetry.org | python3 -
설치 후 poetry 명령이 작동하는지 확인:
$ poetry --version
⚠️ macOS에서 PATH 안 잡힐 경우
$ export PATH="$HOME/.local/bin:$PATH"
#.zshrc 또는 .bashrc에 추가하면 됩니다.
✅ Poetry 기본 사용법
📘 1. 새 프로젝트 생성
$ poetry new myproject
$ cd myproject
| myproject/ ├── pyproject.toml ← 모든 설정 파일 ├── myproject/ │ └── __init__.py └── tests/ |
📘 2. 기존 프로젝트에서 Poetry 초기화
$ cd 기존_폴더
$ poetry init
→ 종속성 입력 여부를 물어보는 CLI 시작됨
(엔터 계속 누르면 됨)
📘 3. 의존성 설치
$ poetry add pandas
$ poetry add openai@^1.0.0
$ poetry add openai@^1.0.0
pyproject.toml에 자동 추가됨
poetry.lock 파일도 생성됨
📘 4. 개발용 의존성 설치
$ poetry add --dev black
$ poetry add --group dev pytest
📘 5. 가상환경 실행
$ poetry shell
가상환경으로 진입 (명령어 앞에 (myproject-py3.11) 같은 표시됨)
📘 6. 파이썬 파일 실행
poetry run python main.py
✅ pyproject.toml 예시
| [tool.poetry] name = "myproject" version = "0.1.0" description = "GPT 기반 챗봇" authors = ["홍길동 <gpt@online.ai>"] [tool.poetry.dependencies] python = "^3.10" openai = "^1.2.0" streamlit = "^1.25.0" [tool.poetry.dev-dependencies] pytest = "^7.4.0" |
✅ Poetry 주요 명령어 요약
명령어 설명
| poetry new 프로젝트명 | 새 프로젝트 생성 |
| poetry init | 기존 프로젝트 초기화 |
| poetry add 패키지명 | 의존성 추가 |
| poetry remove 패키지명 | 패키지 제거 |
| poetry install | 의존성 설치 (잠금 기준) |
| poetry update | 의존성 최신 버전으로 갱신 |
| poetry run 명령어 | 가상환경 내 실행 |
| poetry shell | 가상환경 진입 |
| poetry build | 패키지 배포용 빌드 |
| poetry publish | PyPI 등록 (API 토큰 필요) |
✅ 가상환경 위치 확인 및 변경
$ poetry env info --path
▶️ 전역으로 가상환경 만들기
$ poetry config virtualenvs.in-project true
→ .venv/ 폴더가 프로젝트 내에 생성됨 (IDE 호환 ↑)
✅ Poetry로 배포하기
1. 패키지 빌드
$ poetry build
→ dist/에 .tar.gz 및 .whl 생성
2. PyPI 등록
$ poetry publish --username __token__ --password pypi-xxxxxxxxx
PyPI API 토큰은 https://pypi.org/account에서 생성
✅ 함께 쓰면 좋은 도구
도구 용도
| black, isort | 코드 정리 도구 |
| pytest | 테스트 |
| pre-commit | Git 커밋 전 검사 |
| Docker + Poetry | 개발 환경 고정 |
| LangChain, openai | LLM 기반 프로젝트 관리 |
✅ 장단점 요약
항목 내용
| ✅ 장점 | 의존성 통합 관리, 가상환경 자동, 배포까지 가능 |
| ✅ 장점 | pyproject.toml 하나로 프로젝트 관리 |
| ⚠️ 단점 | 기존 venv/pip과 호환 문제 있을 수 있음 |
| ⚠️ 단점 | 일부 패키지에서 설치 문제 발생 시 workaround 필요 |
✅ 마무리 정리
항목 설명
| Poetry란? | Python 프로젝트 관리 도구 (패키지 + 가상환경 + 배포 통합) |
| 설치 | curl 한 줄로 설치 |
| 핵심 파일 | pyproject.toml, poetry.lock |
| 추천 사용법 | poetry add, poetry shell, poetry run |
| 배포 | poetry build, poetry publish |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- KoSimCSE
- Chroma
- kiwipiepy
- n8n
- Ai
- embedding
- MCP
- open ai
- faiss
- MSA
- 코로나19
- chunking
- K8s
- 쿠버네티스
- poetry
- Oracle
- 임베딩
- Qdrant
- 테라폼
- 버쳐박스
- RangChain
- 5.4.0.1072
- llama
- Weaviate
- VectorStore
- RAG
- llm
- CVE 취약점 점검
- 오라클
- AWS
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함
