Poetry
Python Dependecy Manager로 Python 프로젝트에 대한 모든 dependency를 선언, 관리, 설치하여 어디서나 프로젝트가 작동하도록 도와주는 툴입니다.
Poetry는 .toml 파일과 .lock 파일을 생성해 dependency를 관리합니다. .toml 파일에는 프로젝트 dependency의 Metadata가, .lock 파일에는 설치된 패키지들의 version, hash가 저장되어 있습니다.
Install
https://python-poetry.org/docs/#installing-with-the-official-installer
위 공식 문서에 따라 개발 환경에 맡게 설치하면 됩니다.
Linux, macOS, Windows (WSL)
curl -sSL https://install.python-poetry.org | python3 -
Windows (Powershell)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
윈도우의 경우 "C:\Users\[사용자]\AppData\Roaming\Python\Scripts" 경로를 환경변수에 등록합니다.
Check
poetry --version
실습
Poetry 프로젝트 생성
프로젝트 init
실습할 폴더를 생성 후 초기 세팅을 진행합니다.
mkdir test
cd test
poetry init
프로젝트 이름, 설명, 라이센스, Python 버전을 설정할 수 있습니다. (바로 작성하지 않고 엔터로 넘어간 뒤 후에 pyproject.toml 파일을 수정하여 설정할 수 있습니다.)
이후 위와같이 대화 형식으로 원하는 패키지를 설치 가능합니다.
여기서 Dependency는 프로덕션용, Development Dependency는 Dev용으로 개발 환경마다 필요한 패키지를 분리하여 설치하면 됩니다.
설정 확인
pyproject.toml 파일을 열어 설정한 정보를 확인하거나 수정할 수 있습니다.
Poetry Shell 활성화
poetry shell
만약, 가상환경 활성화 보안 오류가 뜬다면 다음 명령어를 입력 후 다시 활성화 합니다.
Set-ExecutionPolicy Unrestricted
Poetry 설치
pyproject.toml에 설정한 내용을 기반으로 패키지들을 설치합니다.
poetry install
패키지 추가 설치
다음 명령어를 통해 필요한 패키지를 추가로 설치합니다.
poetry add pandas
poetry.lock
여기 까지 진행했다면 poetry.lock 파일이 생성된 것을 확인할 수 있습니다.
이 파일을 가지고 동일한 의존성을 가진 새로운 프로젝트를 생성할 수 있습니다.
Simple Web Server
웹 서버 파일 생성
# test.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def test():
return {"Hello": "World"}
uvicorn 설치
poetry add uvicorn
Server 구동
# poetry shell 이 실행 되어 있는 경우
uvicorn test:app
# poetry shell 이 실행 되어 있지 않은 경우
poetry run uvicorn test:app
[참고]
'Python > Setting' 카테고리의 다른 글
[Python] matplotlib 한글 폰트 전역 설정 (0) | 2024.08.20 |
---|---|
[Python] / [nohup] .py 백그라운드 실행 (0) | 2023.06.08 |
[Python] / [pyenv] Ubuntu에서 pyenv 설치 (0) | 2022.01.07 |
[Python] / [VSCode] Ubuntu에서 설치 및 SSH를 사용하여 서버 원격 접속 (0) | 2021.12.28 |
[Python] / [Jupyter] 주피터 노트북 이미지 삽입 방법 (0) | 2021.12.03 |