FastAPI로 백엔드 만들어보기 - 개발환경 구성 - poetry
23년 이전 글/python

FastAPI로 백엔드 만들어보기 - 개발환경 구성 - poetry

poetry 로고

기존에 파이썬 라이브러리 설치를 위해서 주로 pip만 썼었습니다

어차피 이것만 있으면 설치하는데 문제는 없었기 때문이었죠

그러나 계속되는 가상환경 생성과 pip install의 반복, 그리고 간간히 한번씩

발생하는 의존성 문제는 개발환경 설정에서부터 어려움을 겪게 만들곤 했습니다

특히 pororo 설치 과정에서 의존성의 버전이 안맞다는 문제를 여러번 겪고 나서는

이 의존성 관리를 해줄 것이 필요하다고 생각했는데요 이때 필요한게 바로 Poetry 입니다

 

출처 : poetry 홈페이지

 

의존성의 해결사, 동시에 가상환경의 생성과 관리, 간편한 CLI를 제일 특징으로 내세우고 있습니다

환경 설정에서 제일 필요한 명령들만 참고해서 만들어 보겠습니다

 

설  치

pip install poetry

이제부터 poetry 명령어를 사용할 수 있습니다

 

기본 환경 설치

poetry new <파일명>

생성된 파일 구조(폴더명이 poetry-demo일 경우)

 

toml 파일 내부

 

여기서 pyproject.toml 파일을 통해서 전체적인 의존성을 확인할 수 있습니다

직접 만질수도 있지만 방법을 잘 모를때는 차라리 명령어로 하는 것이 나아 보입니다

 

라이브러리 설치

poetry add fastapi uvicorn sqlalchemy

 

기능은 pip install 처럼 동일하게 설치하지만, 가상환경을 실행하지 않고도 알아서

설치를 해줍니다(pyproject.toml)이 있는 디렉토리로 이동하셔서 쓰셔야 합니다

 

설치장면

가상환경이 없으면 이 단계에서 만드는 것을 확인할 수 있습니다

 

가상환경에 들어가기

poetry shell

가상환경 나오기

poetry exit

 

이 밖에도 가상환경의 리스트를 보거나

기존 프로젝트에 가상환경 생성하기

toml 파일만으로 의존성 설치하기 등 다양한 방법이 추가로 있습니다

잘 사용하면 버전관리의 큰 이점이 있으니 자세히 알아보시려면 공식 홈페이지에서

더 알아보시는 것을 추천 드립니다

https://python-poetry.org/docs/basic-usage/

 

Basic usage | Documentation | Poetry - Python dependency management and packaging made easy

Why a new shell? Child processes inherit their environment from their parents, but do not share them. As such, any modifications made by a child process, is not persisted after the child process exits. A Python application (Poetry), being a child process,

python-poetry.org

 

반응형