🪴 Daily gardening

Search

Search IconIcon to open search

Poetry

Last updated Jan 1, 2023

Python의 기본 패키지 매니저인 pip의 불편한점

# 장점

# poetry.lock

# virtualenv

# 설치 방법

# Linux, MacOS, Windows(WSL)

1
curl -sSL https://install.python-poetry.org | python3 -

# windows (powershell)

1
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

# 새 프로젝트 시작하기

1
2
poetry new new-poetry-repository
cd new-poetry-repository

들어가보면 다음과 같은 프로젝트 구조로 되어있다. (Tree 명령어 를 사용)

1
2
3
4
5
6
7
new-poetry-repository/
├── README.md
├── new_poetry_repository
│   └── __init__.py
├── pyproject.toml
└── tests
    └── __init__.py

만약, 패키지 이름을 바꾸려면 아래와 같이 name을 따로 줄 수도 있다.

1
poetry new new-poetry-repository --name cheese-poetry
1
2
3
4
5
6
7
new-poetry-repository
├── README.md
├── cheese_poetry
│   └── __init__.py
├── pyproject.toml
└── tests
    └── __init__.py

# 이미 있는 프로젝트 내에 세팅하기

1
poetry init

# 의존성 추가

1
2
poetry add {package}
poetry add aioredis

# pyproject.toml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[tool.poetry]
name = "cheese-poetry"
version = "0.1.0"
description = ""
authors = ["cheese <seojeee@gmail.com>"]
readme = "README.md"
packages = [{include = "cheese_poetry"}]

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


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

# poetry check

# poetry install

1
poetry install --no-dev # dev-dependencies 빼고 

# poetry update

# poetry.lock

# Virtual Environment

1
2
3
4
5
6
7
8
# 설정 가능한 python 환경들 확인하기 
poetry env list

# venv로 사용할 python 환경
poetry env use python3

# venv 사용하여 python 사용하기 
poetry run python ./main.py

지금 사용중인 virtual env 위치 확인하기

1
poetry show -v

# References