본문 바로가기

Software Engineering/Python

poetry 사용법 정리

(참고자료) https://python-poetry.org/docs/basic-usage/

 

* 새 프로젝트 시작하기

> poetry new [project-name]

아래와 같이 프로젝트 구조가 세팅된다.

 

pyproject.toml 파일을 살펴보면

 

* 기존 프로젝트에서 시작하기

cd pre-existing-project

> poetry init

 

* 의존성 추가하기

> poetry add [package-name]

 

* 의존성 설치하기

> poetry install 

 

* 가상 환경 활성화

> poetry shell

> python main.py # 가상환경 활성화 상태에서는 의존성 포함 실행 가능

 

* 가상 환경 비활성화 상태에서 실행

> poetry run main.py

 

PyPi 등에 배포할 대

* build

> poetry build

 

* pubish

> poetry publish

 

[재정리]

* 프로젝트 초기화

> cd my-project

> poetry init

프로젝트 초기화를 진행하면 poetry.toml 파일이 생성된다.

 

* 가상환경 활성화

> poetry shell

생성된 poetry.toml에 선언된 파이썬 가상 환경이 생성 및 실행된다.

poetry.toml 파일이 있는 폴더에서 실행해야 한다.

 

* 의존성 설치

> poetry install

poetry.toml에 선언된 의존성을 설치한다.

해당 위치에서 처음 실행하여 poetry.lock 파일이 없는 경우 생성한다.

이전에 생성한 poetry.lock 파일이 있는 경우 해당 파일의 내용을 사용하여 의존성을 설치한다.

 

* 의존성 추가

> poetry add [package-name]

의존성을 추가하면 toml 파일에 선언이 추가되고, 의존성이 설치되고, lock 파일에 의존성 설치 결과가 업데이트 된다.

버전을 지정하고 싶다면 아래와 같이 의존성을 추가한다.

> poetry add [package-name]@[version]

> poetry add python@3.10

> poetry add "flask@^1.1"

캐럿(^)을 사용하면 메이저버전이 동일한 범위에서 호환되는 버전을 설치한다(1.1<=, <2.0). (시멘틱 버저닝)

 

* 의존성 버전 업데이트

> poetry update

의존성을 업데이트 하면 각 항목의 최신 버전이 toml 파일이 선언으로 업데이트되고, 의존성 설치, lock 파일에 의존성 설치 결과가 업데이트 된다.

 

> poetry update [package-name]

패키지 이름을 지정하면 해당 패키지만 업데이트 가능하다.

 

* 의존성 삭제

> poetry remove [package-name]

toml 파일 업데이트, 의존성 삭제, lock 파일 업데이트를 진행한다.

 

* 설치된 의존성 목록 보기

> poetry show

 

업데이트가 필요한 패키지만 보고 싶은 경우

> poetry show --outdated

 

* 의존성 목록(poetry.toml)을 requirements.txt 형태로 export하기

> poetry export -f requirements.txt --output requirements.txt --without-hashes