Poetry 개요와 설치

kim 개인기록용·2024년 6월 19일
0

poetry

목록 보기
1/2

Poetry

Poetry가 무엇인가?
Poetry의 공식 홈페이지에 접속해보면 바로 보이는 문구는 이것이다.

PYTHON PACKAGING AND DEPENDENCY MANAGEMENT MADE EASY

의존성 관리

  • 프로젝트를 하다보면 각각이 사용하는 모듈이 서로 다르고, 버전을 타는 경우가 많다.
  • 이 때 각 프로젝트에서 사용하고 사용하지 않는 모듈의 관리가 되지 않거나 버전 간 의존성이 있는 부분이 충돌하게 되면 말 그대로 난장판이 될 수 있다.
  • Poetry는 명시한 버전 정보를 확인하고 특정 버전 이상이 아니라면 설치를 하지 않는다. 버전 차이로 인한 꼬임을 아예 막는 것이다.
  • lock, pyproject.toml 파일을 자동으로 생성하고 업데이트하면서 버전 관리까지 한번에 할 수 있다.
  • pip을 사용할 때 직접 한땀한땀 작성해야 하는 requirements 파일보다 훨씬 편하겠지.

가상환경 관리

  • 가상환경이 없다면 내 pc 전체에 패키지가 설치되는 것이므로 버전별로 관리할 수가 없다.
  • 이럴 때 가상환경을 생성하고 관리하는 부가적인 툴(콘다, venv 등)이 필요하다.
  • poetry는 가상환경까지 한번에 관리할 수 있다.

통합

  • 가상환경을 만들어서 각 요구 버전의 모듈을 설치하고 이것들을 관리하는 각각의 툴이 존재해왔다.
  • poetry는 이러한 것들을 한번에 셋팅할 수 있게 한다고 생각하면 된다.

Poetry 설치

Python 설치

poetry는 파이썬 버전 3.8 이상을 필요로 한다.
나는 3.11.9 버전이 설치되어 있는 상태이므로 넘어간다.
설치가 안되어 있다면 파이썬 공식 사이트에서 다운로드 및 설치 필요.

Poetry 설치

Poetry의 공식 홈페이지에 아주 친절히 나와있다.
접속 후 우측 상단의 DOCUMENTS를 클릭하고 왼쪽 목록에서 Installation을 클릭, With the official installer 탭을 클릭해서 설치를 진행했다.
설치 가이드를 따른다면 크게 어려울 것은 없다.

Window 기준

  1. powershell을 켜서 아래 명령어를 입력, 설치를 진행한다.
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
  1. 설치가 완료되면 환경변수 편집 창을 열어서 poetry 환경변수를 설정해준다.
    2.1 Window의 경우 설치 경로는 %APPDATA%\pypoetry\venv\Scripts\poetry 에 위치해 있다고 문서에 나와있는데
    저 경로가 없는 경우 %AppData%\Roaming\pypoetry\venv\Scripts 여기를 찾아본다.
    2.2 경로 밑에 python.exe가 있으면 탐색기에서 해당 경로를 찾아서 복사해서 Path 에 추가해준다.
  2. 설치가 완료되면 cmd 창을 열어서 poetry --version 이라고 입력하면 설치된 버전이 출력되면 완료

Poetry 프로젝트 만들어보기

설치를 진행한 Installation 바로 밑 목차인 Basic usage에 역시 친절하게 나와있다.
cmd에서 프로젝트를 만들 경로로 이동해준 후 아래 명령어를 수행하면 폴더를 새로 만들면서 프로젝트를 셋팅해준다.
이 떄, 파이썬 버전은 pc에 설치되어 있는 버전을 따라간다.

poetry new poetry-demo

이미 생성해놓은 폴더가 있다면 해당 폴더로 이동해준 후 init을 하면 된다.

cd poetry-demo
poetry init

생성된 폴더를 살펴보면 아래와 같은 구성으로 생성되어 있는 것을 확인할 수 있다.

poetry-demo
├── pyproject.toml
├── README.md
├── poetry_demo
│   └── __init__.py
└── tests
    └── __init__.py

pyproject.toml 파일에서 poetry로 관리되는 의존성 목록을 확인할 수 있다.

[tool.poetry]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = ["Sébastien Eustace <sebastien@eustace.io>"]
readme = "README.md"
packages = [{include = "poetry_demo"}]

[tool.poetry.dependencies]
python = "^3.7"


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

감사한 분들(참고 출처)

0개의 댓글

관련 채용 정보