/////
Search

Poetry 조사

파이썬의 의존성 관리자, Poetry
Poetry는 왜 사용할까요?
핵심 파일: pyproject.tomlpoetry.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가 관리하는 가상 환경 내부에서 python main.py 수행
poetry run pyrhon main.py
Python
복사
poetry shell과 차이
poetry shell을 실행하면 현재 터미널 세션이 가상 환경으로 활성화
환경을 빠져나가려면 exit 입력