ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • poetry를 사용한 파이썬 dependency관리
    Python 2022. 9. 27. 10:30

    목차

      서론

      poetry가 1.2 버전으로 업데이트하면서 기존의 main, dev 이외의 group을 추가하여
      dependency가 관리가 가능해졌습니다.

       

      그에 대하여 간단한 명령어 및 사용 결과를 서술하는 페이지입니다.

       

       

      본론

      poetry==1.2.1 기준입니다.

       

      명령어

      1. init

      • poetry init 첫 시작은 init을 사용하여, name, version등 프로젝트 정보를 적고 dependencies를 추가합니다.

      2. add

      • poetry add library 일반적으로 library를 설치하기 위해서는 이 명령어를 사용합니다.
        자동으로 main dependencies[tool.poetry.dependencies]에 속합니다
      • poetry add library -G group
      • library를 설치하되 group dependencies에 속합니다. poetry add django -G test를 입력하면 [tool.poetry.group.test.dependencies] 에 속하게 됩니다.

      3. remove

      • poetry remove library 모든 dependencies에 있는 library를 지웁니다.
      • poetry remove library -G group group에 속한 library를 지웁니다.

      4. install

      • poetry config virtualenvs.create false virtualenv 미 생성 명령어로 Dockerfile에 필수로 추가해야하는 명령어입니다. 미 입력 시,
        poetry run manage.py 와 같은 형태로 파이썬 스크립트를 실행해야 합니다.
      • poetry install poetry에 설정된 libarary를 모두 설치합니다.
      • poetry install —with group 명시한 group dependencies를 포함하여 설치합니다.
      • poetry install —without group 명시한 group dependencies를 제외하여 설치합니다.
      • poetry install --only main,group 명시한 group dependencies를 포함하여 설치하나 —only는 main도 제외하기 때문에 주의해야 합니다.

       

      예시

      pyproject.toml

      예시로 설치할 pyproject.toml 파일입니다.

      main은 django와 pyscopg2

      test는 coverage, pytest

      dev는 django-debug-toolbar

      worker 는 celery를 설치할 예정입니다.

      [tool.poetry]
      name = "tistory"
      version = "0.1.0"
      description = ""
      authors = ["Your Name <you@example.com>"]
      readme = "README.md"
      
      [tool.poetry.dependencies]
      python = "^3.10"
      Django = "^4.1.1"
      psycopg2 = "^2.9.3"
      
      
      [tool.poetry.group.test.dependencies]
      coverage = "^6.4.4"
      pytest = "^7.1.3"
      
      
      [tool.poetry.group.dev.dependencies]
      django-debug-toolbar = "^3.7.0"
      
      
      [tool.poetry.group.worker.dependencies]
      celery = "^5.2.7"
      
      [build-system]
      requires = ["poetry-core"]
      build-backend = "poetry.core.masonry.api"

       

       

      web

      poetry install

      먼저 기본적인 install입니다.

      group 관계 없이 모두 설치가 되었습니다.

       

      test

      poetry install --with test

      다음은 with을 사용한 test 설치입니다.

      기본적으로 install은 전체 설치이기 때문에 with을 추가해도 위와 동일한 걸 알 수 있습니다.

      dev

      poetry install --without test,worker

      without으로 test, worker을 뺀 dev입니다.

      celery, coverage와 그 dependency들이 빠진걸 확인할 수 있습니다.

      worker

      poetry install --only worker

      only를 사용하여 worker만 설치한 결과입니다.

      web, test, dev 제외한 celery와 dependency만 설치된걸 알 수 있습니다.

      only는 기본 dependency인 main까지 무시하므로 only를 사용할땐 주의해야 합니다.

       

       

       

      'Python' 카테고리의 다른 글

      python apple, google ID TOKEN 검증기  (0) 2022.03.05

      댓글

    Designed by Tistory.