-
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 - poetry init 첫 시작은 init을 사용하여, name, version등 프로젝트 정보를 적고 dependencies를 추가합니다.