Poetry는 Python 프로젝트의 의존성 관리, 패키징 및 배포를 손쉽게 할 수 있게 해주는 도구이다. 이 도구는 사용하기 쉬운 명령어 인터페이스를 제공하여 개발자가 프로젝트 관리를 효율적으로 할 수 있도록 돕는다. 이 절에서는 Poetry에서 자주 사용되는 주요 명령어들과 그 기능을 설명한다.

poetry --version

이 명령어는 설치된 Poetry의 버전을 확인할 때 사용된다.

poetry --version

Poetry의 특정 버전을 사용 중인지 확인하고, 새로운 업데이트가 필요한지 판단하는 데 유용하다.

poetry new

새로운 Python 프로젝트를 초기화할 때 사용하는 명령어이다. 이 명령어는 지정된 디렉토리에 기본적인 파일 구조를 생성하고, pyproject.toml 파일을 자동으로 생성한다.

poetry new my_project

위 명령어를 실행하면 my_project라는 디렉토리 내에 다음과 같은 기본 파일 구조가 생성된다:

my_project/
├── pyproject.toml
├── README.rst
├── my_project
│   └── __init__.py
└── tests
    └── __init__.py

옵션으로 --name을 사용할 수 있으며, 프로젝트의 이름을 설정할 수 있다.

poetry new --name my_custom_project my_project

poetry init

기존 디렉토리에서 새로운 Poetry 프로젝트를 시작할 때 사용되는 명령어이다. 이 명령어는 pyproject.toml 파일을 생성하는 대화형 방식의 초기화 과정을 실행한다.

poetry init

실행 후, 다음과 같은 질문을 받게 되며 이를 통해 프로젝트의 기본 설정을 진행할 수 있다:

  1. 패키지 이름
  2. 버전
  3. 설명
  4. 작성자
  5. 라이선스
  6. Python 버전 범위
  7. 의존성 추가 여부

만약 대화형 과정을 건너뛰고 싶다면 --no-interaction 플래그를 사용할 수 있다.

poetry init --no-interaction

poetry install

poetry install 명령어는 프로젝트에서 정의된 의존성을 설치하고 가상 환경을 설정하는 데 사용된다. 주로 프로젝트에 새로운 팀원이 참여하거나 새로운 환경에서 프로젝트를 실행할 때 활용된다.

poetry install

이 명령어는 pyproject.toml에 정의된 패키지를 설치하고, 가상 환경을 자동으로 생성한다. 만약 이미 의존성이 설치되어 있다면 아무 작업도 실행하지 않으며, 최신 버전의 패키지를 설치하고 싶을 경우 --no-dev 옵션을 붙여 개발 의존성을 제외할 수도 있다.

poetry add

poetry add 명령어는 프로젝트에 새로운 의존성을 추가할 때 사용된다. 이 명령어는 pyproject.toml 파일에 해당 패키지를 추가하고 자동으로 의존성을 설치한다.

poetry add requests

위 명령어는 requests 패키지를 프로젝트에 추가하며, 추가적으로 --dev 옵션을 사용하면 개발 의존성에만 추가할 수 있다.

poetry add --dev pytest

poetry remove

poetry remove 명령어는 프로젝트에서 특정 패키지를 제거할 때 사용된다. 이 명령어는 pyproject.toml에서 패키지를 제거하고 의존성도 삭제한다.

poetry remove requests

위 명령어는 requests 패키지를 프로젝트에서 제거한다.

poetry update

poetry update 명령어는 프로젝트에서 사용 중인 모든 패키지의 의존성을 최신 버전으로 업데이트한다. 이는 pyproject.toml 파일에 명시된 버전 범위 내에서 실행된다. 이 명령어는 poetry.lock 파일을 업데이트하며, 이 파일은 프로젝트 의존성의 정확한 버전을 기록한다.

poetry update

특정 패키지만 업데이트하고 싶다면, 해당 패키지 이름을 명령어에 추가할 수 있다.

poetry update requests

위 명령어는 requests 패키지를 최신 버전으로 업데이트한다.

poetry lock

poetry lock 명령어는 pyproject.toml에 정의된 의존성을 바탕으로 새로운 poetry.lock 파일을 생성한다. 의존성 트리에서 발생할 수 있는 충돌을 해결하고, 패키지의 정확한 버전을 고정하기 위해 사용된다.

poetry lock

일반적으로 poetry install 명령어를 사용할 때 자동으로 실행되지만, 수동으로 실행할 수도 있다.

poetry run

poetry run 명령어는 Poetry가 관리하는 가상 환경에서 특정 명령어를 실행할 때 사용된다. 예를 들어, 설치된 패키지나 스크립트를 실행할 때 유용하다.

poetry run python script.py

위 명령어는 가상 환경 내에서 script.py 파일을 실행한다.

poetry shell

poetry shell 명령어는 Poetry가 관리하는 가상 환경을 활성화하여 가상 환경 내에서 명령어를 직접 실행할 수 있게 한다. 이 명령어는 개발 중에 매우 유용하다.

poetry shell

가상 환경에 진입한 후에는 해당 환경에서 원하는 명령어를 실행할 수 있으며, 종료할 때는 exit 명령어로 나올 수 있다.

poetry build

poetry build 명령어는 프로젝트를 패키지로 빌드할 때 사용된다. 이 명령어는 pyproject.toml 파일을 참고하여 프로젝트를 빌드하고, 결과로 wheel 파일 및 source archive 파일을 생성한다.

poetry build

이 빌드된 파일들은 PyPI와 같은 패키지 저장소에 업로드할 수 있으며, 로컬 설치도 가능한다.

poetry publish

poetry publish 명령어는 빌드된 패키지를 PyPI(Python Package Index)나 다른 패키지 저장소에 업로드할 때 사용된다. 이 명령어는 빌드된 파일을 자동으로 업로드하고 배포한다.

poetry publish

PyPI 계정 정보를 입력하지 않으려면, --username--password 옵션을 사용할 수 있다. 또는 토큰 기반 인증을 사용할 수도 있다.

poetry cache

poetry cache 명령어는 Poetry가 사용하는 캐시를 관리할 수 있도록 도와준다. 설치된 패키지나 빌드된 파일들이 캐시에 저장되는데, 이 캐시를 확인하거나 삭제할 수 있다.

poetry cache clear

위 명령어는 모든 캐시를 삭제한다.

poetry config

poetry config 명령어는 Poetry의 설정을 변경하거나 조회할 때 사용된다. 기본적으로 Poetry는 다양한 설정 옵션을 제공하며, 이 명령어로 설정을 쉽게 관리할 수 있다.

poetry config --list

위 명령어는 모든 설정 값을 출력한다. 특정 설정 값을 변경하고 싶다면 다음과 같은 형식으로 입력할 수 있다.

poetry config virtualenvs.in-project true

이 명령어는 가상 환경을 프로젝트 내에서 생성하도록 설정을 변경한다.

poetry search 명령어는 PyPI에서 특정 패키지를 검색할 때 사용된다. 패키지의 이름이나 키워드를 입력하면 해당 패키지 목록이 반환된다.

poetry search requests

위 명령어는 requests 패키지와 관련된 검색 결과를 반환한다.

poetry self

poetry self 명령어는 Poetry 자체를 관리하는 명령어이다. 주로 Poetry의 업데이트나 유지 관리를 할 때 사용된다.

poetry self update

위 명령어는 Poetry를 최신 버전으로 업데이트한다.