Poetry Managing Dependencies

Poetry는 의존성을 효율적으로 관리하기 위해 다양한 기능을 제공한다.
의존성 그룹을 활용하기 위해 개발, 테스트, 문서화 등 목적에 따라 의존성을 체계적으로 분류할 수 있다.

의존성 그룹 설정

의존성 그룹을 정의하려면 pyproject.toml 파일에 다음과 같이 섹션을 추가한다.
<group_name>은 그룹의 이름을 의미하며, 예를 들어 테스트 관련 의존성은 test 그룹으로 정의할 수 있다.

1
2
3
4
5
6
7
[tool.poetry.group.<group_name>.dependencies]
패키지명 = "버전"

# example
[tool.poetry.group.test.dependencies]
pytest = "^6.0.0"
pytest-mock = "*"

의존성 그룹 설치

poetry install 명령어를 실행하면 모든 비선택적 그룹의 의존성이 설치된다.

  • 특정 그룹 제외

    1
    
      $ poetry install --without test,docs
    
  • 선택적 그룹 포함

    1
    
      $ poetry install --with docs
    
  • 특정 그룹만 설치

    1
    
      poetry install --only docs
    

의존성 추가 및 제거

특정 그룹에 의존성을 추가 및 제거하려면 --group 옵션을 사용

1
2
3
4
5
# 의존성 추가
$ poetry add 패키지명 --group 그룹명

# 의존성 제거
$ poetry remove 패키지명 --group 그룹명

의존성 동기화

현재 환경을 poetry.lock 파일과 동기화하여 불필요한 패키지를 제거하려면 --sync 옵션을 사용.

1
$ poetry install --sync

그룹 관련 옵션과 함께 사용 가능.

1
2
3
$ poetry install --without dev --sync
$ poetry install --with docs --sync
$ poetry install --only dev --sync

참고 및 출처

Poetry

Managing dependencies | Documentation | Poetry - Python dependency management and packaging made easy