Poetry 설치 및 사용법

Gillilab - TechLog·2024년 2월 19일

poetry 설명

  • python 의존성 관리 도구
  • poetry.lock 파일 기반 프로젝트 의존성 유지
  • 가상환경 지원 및 관리

Install

$ apt update
$ apt install curl
$ curl -sSL https://install.python-poetry.org | python3 -

환경변수 설정

$ vim ~/.bashrc # PATH 추가
# export PATH=$PATH:$HOME/.local/bin
# or
# export PATH=$PATH:$HOME/.poetry/bin

poetry init

poetry.toml 대화형 생성

poetry shell

가상환경 생성 & 실행

수동실행: [poetry 가상환경 경로]/bin/activate

poetry install

현재 프로젝트 poetry.toml 파일 기반 의존성 패키지 설치

poetry add

필요 패키지 설치

$ poetry add torch # 기본
$ poetry add torch@^1.13.1 # 버전 지정
$ poetry add expiringdict
$ cat pyproject.toml

# pyproject.toml
[tool.poetry]
name = "rupi-server"
version = "0.1.0"
description = ""
authors = ["rupi <rupi@mmonstar.co.kr>"]
readme = "README.md"
packages = [{include = "rupi_server", from = "src"}]

[tool.poetry.dependencies]
python = "^3.12"
expiringdict = "^1.2.2"


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

poetry update

의존성 패키지 update and poetry.lock update

$ poetry update # 기본
$ poetry update torch # 특정 패키지

poetry remove

특정 패키지를 삭제하는 명령어

$ poetry remove torch

poetry show

  • 설치 패키지 목록
$ poetry show # 기본
$ poetry show --outdate (-o) # 업데이트 가능 패키지 목록
$ poetry show --tree # 의존성 트리

poetry export

poetry.toml 파일 내보내기

$ poetry export -f requirements.txt --output requirements.txt # 기본
$ poetry export -f requirements.txt --output requirements.txt --without-hashes # 해시 정보 없이 export

poetry env

가상환경 관련

$ poetry env info # 생성한 가상환경 정보 확인
$ poetry env list # 가상환경 리스트 확인
$ poetry env remove [가상환경 경로] # 가상환경 삭제

프로젝트 생성

cd working-dir
$ poetry new rupi-server --src
$ poetry new rupi-client --src

--src: src 디렉토리 생성 및 소스 추가

$ tree -L 3
.
├── poetry-usage.md
├── rupi-client
│   ├── pyproject.toml
│   ├── README.md
│   ├── src
│   │   └── rupi_client
│   └── tests
│       └── __init__.py
├── rupi-server
│   ├── pyproject.toml
│   ├── README.md
│   ├── src
│   │   └── rupi_server
│   └── tests
│       └── __init__.py
└── usage2.md

8 directories, 8 files

프로젝트 빌드

배포 가능 파일 생성

$ cd rupi-server
$ poetry build
Building rupi-server (0.1.0)
  - Building sdist
  - Built rupi_server-0.1.0.tar.gz
  - Building wheel
  - Built rupi_server-0.1.0-py3-none-any.whl

$ tree ./dist
dist/
├── rupi_server-0.1.0-py3-none-any.whl
└── rupi_server-0.1.0.tar.gz

Virtualenv

virtuanlenv와 동일 가상환경(virtualenv) 자체적 관리

  1. 가상환경 생성

    $ poetry env use $PYTHON_HOME/bin/python3
    • poetry add 패키지 추가경로: $HOME/.cache/pypoetry/viertualenvs/ 하위 디렉토리
  2. 가상환경 접속

    $ poetry shell
    $ poetry env info
  3. 가상환경 접속 종료

    $ exit
  4. 가상환경 삭제

     poetry env remove $PYTHON_HOME/bin/python3

0개의 댓글