파이썬의 의존성 관리자, Poetry 
Poetry는 왜 사용할까요?
핵심 파일: pyproject.toml 과 poetry.lock
간단한 사용법
requirements.txt와 차이점
< Poetry 설치 방법>
•
Window (PowerShell에서 명령 실행)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
Python
복사
<구조 이해: pyproject.toml의 역할> https://python-poetry.org/docs/managing-dependencies/
•
프로젝트명, 버전, 의존성 등 기본적인 프로젝트 메타 정보 저장
•
poetry.lock
◦
프로젝트의 의존성이 해결된 후 생성
◦
의존성 트리에 있는 모든 패키지의 정확한 버전을 잠그고(즉, 고정하고) 기록
<프로젝트 생성 및 의존성 관리>
•
프로젝트 생성: poetry new
poetry new my_project
Python
복사
- my_project 폴더 생성
- 기본적인 Python 패키지 구조 (프로젝트, __init___.py, tests 등) 자동 구성
- 이때, pyproject.toml도 자동 생성
•
패키지 추가: poetry add
poetry add requests
Python
복사
- ‘requests’ 라이브러리가 프로젝트에 추가됨.
- pyproject.toml에 ‘requests’가 의존성으로 기록됨.
- 개발 의존성으로 패키지 추가 할 때 --dev 플래그
poetry add --dev 패키지명
Python
복사
•
패키지 삭제/업데이트
poetry remove requests
Python
복사
poetry update requests
Python
복사
•
패키지 검색 및 버전 제어
poetry search <package_name>
Python
복사
#pyproject.toml
[tool.poetry.dependencies]
requests = "^2.25.1"
Python
복사
- Semantic Versioning
MAJOR.MINOR.PATCH
MAJOR 버전이 올라가면 호환성이 깨줄 수 있다는 의미
MINOR 버전은 새로운 기능 추가(하위 호환 유지)
PATCH 버전은 버그 수정
^ →
<가상 환경 관리>
•
가상 환경 자동 생성
◦
기본적으로 Poetry는 프로젝트 별로 가상 환경을 $HOME/.cache/pypoetry/virtualenvs 내부에 자동으로 생성해줌
•
가상 환경 위치 설정 및 변경
◦
현재 사용 중인 가상 환경 경로 확인
poetry env info
Python
복사
<프로젝트 실행 & 스크립트 실행>
•
poetry run 명령어
◦
poetry run pyrhon main.py
Python
복사
•
poetry shell과 차이
◦
poetry shell을 실행하면 현재 터미널 세션이 가상 환경으로 활성화
▪
환경을 빠져나가려면 exit 입력
