$ 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.toml대화형 생성
가상환경 생성 & 실행
수동실행: [poetry 가상환경 경로]/bin/activate
현재 프로젝트
poetry.toml파일 기반 의존성 패키지 설치
필요 패키지 설치
$ 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"
의존성 패키지 update and
poetry.lockupdate
$ poetry update # 기본
$ poetry update torch # 특정 패키지
특정 패키지를 삭제하는 명령어
$ poetry remove torch
$ poetry show # 기본
$ poetry show --outdate (-o) # 업데이트 가능 패키지 목록
$ poetry show --tree # 의존성 트리
poetry.toml파일 내보내기
$ poetry export -f requirements.txt --output requirements.txt # 기본
$ poetry export -f requirements.txt --output requirements.txt --without-hashes # 해시 정보 없이 export
가상환경 관련
$ 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
virtuanlenv와 동일 가상환경(virtualenv) 자체적 관리
가상환경 생성
$ poetry env use $PYTHON_HOME/bin/python3
가상환경 접속
$ poetry shell
$ poetry env info
가상환경 접속 종료
$ exit
가상환경 삭제
poetry env remove $PYTHON_HOME/bin/python3