poetry ๋?
ํจํค์ง/์์กด์ฑ ๊ด๋ฆฌ + ๊ฐ์ํ๊ฒฝ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ๋ ํด์
๋๋ค.
๋น์ทํ ๊ฒ์ pipenv ๊ฐ ์๋๋ฐ ๋ ๋ค ์จ๋ณธ ๊ฒฐ๊ณผ ํฐ ์ฐจ์ด๋ ์์ง๋ง poetry ๊ฐ ์ข ๋ ๊ฐ๋ฒผ์ด ๋๋์ด ๋ญ๋๋ค.
์ ์ฌ์ฉํ๋๊ฐ?
์์กด์ฑ๊ด๋ฆฌ
js ๋ฅผ ์ฃผ๋ก ์จ์จ ์ ์๊ฒ ํ์ด์ฌ์ ์์กด์ฑ ๊ด๋ฆฌ๋ ์๋นํ ๋น์ฝํ๋ค๊ณ ๋๊ผ์ต๋๋ค.
ํนํ requirements.txt ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ํ์
์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ฌ์ง๊ฐ ์ข ์์ต๋๋ค.
์์กด์ฑ ๊ด๋ฆฌํด์ ์ฌ์ฉํ๋ฉด ์ค์นํ ํจํค์ง ์์กด์ฑ์ ๊ด๋ฆฌํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ํด๊ฒฐํด์ค ์ ์์ต๋๋ค.
๊ฐ์ํ๊ฒฝ
ํ์ด์ฌ์ ๋ด์ฅ venv ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ธดํ์ง๋ง ๋งค ํ๋ก์ ํธ๋ง๋ค ์ธํ
ํ๊ธฐ๊ฐ ์๊ทผํ ๊ท์ฐฎ์ต๋๋ค.
poetry ๋ฅผ ์ฐ๋ฉด ์ปค๋งจ๋ ํ ์ค๋ก ์ธํ
์ด ๊ฐ๋ฅํด์ ๋ ๊ฐ๋จํฉ๋๋ค.
์ค์น
macOS / linux
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
Bash
๋ณต์ฌ
์ค์น ํ์ธ
ํฐ๋ฏธ๋ ๋ค์ ์์ ํ ๋ช
๋ น์ด poetry --version
๋ฒ์ ์
๋ฐ์ดํธ
poetry self update
Bash
๋ณต์ฌ
poetry ํ๋ก์ ํธ ์ธํ
poetry init
Bash
๋ณต์ฌ
npm ์ npm init ๊ณผ ๋น์ทํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ช
๋ น์ด ์
๋๋ค.
npm init ์ ํ๊ฒ๋๋ฉด package.json ์ด ์๊ธฐ๋ฏ์ด,
poetry init ์ ํ๊ฒ ๋๋ฉด pyproject.toml ์ด๋ผ๋ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
ํ๋ก์ ํธ์ ๋ฉํ์ ๋ณด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ์ ๊ด๋ฆฌํด์ฃผ๋ ํ์ผ์
๋๋ค.
poetry ๊ฐ์ํ๊ฒฝ
poetry shell
Bash
๋ณต์ฌ
ํด๋น ๋๋ ํ ๋ฆฌ์์ ๊ฐ์ํ๊ฒฝ์ด ์์ฑ๋๊ณ activate ๋ฉ๋๋ค.
poetry init ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ ํ์๋ง ๊ฐ์ํ๊ฒฝ์ ์์ฑ๊ฐ๋ฅํฉ๋๋ค.
๊ฐ์ํ๊ฒฝ์ ์ข
๋ฃ์ํค๊ณ ์ถ๋ค๋ฉด exit ์ด๋ deactivate ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
poetry ์์ ์ง์ํ๋ ๊ฐ์ํ๊ฒฝ์ ๊ดํ ๋ ๋ง์ ๋ช
๋ น์ด์ ๊ธฐ๋ฅ๋ค์ ์๋ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด๋ณด์ธ์
ํจํค์ง ์ค์น
install ์ด ์๋๋ผ add ๋ช
๋ น์ด๋ก ์ค์นํฉ๋๋ค.
๊ฐ๋ฐ์ฉ ํจํค์ง์ผ๋๋ --dev ๋ช
๋ น์ด๋ฅผ ๋ถํ์ค๋๋ค.
poetry add ํจํค์ง๋ช
poetry add --dev ํจํค์ง๋ช
# ๊ฐ๋ฐ์ฉ ํจํค์ง
Bash
๋ณต์ฌ
pyproject.toml ์ ํ์ธํด๋ณด๋ฉด ์์์ ์ค์นํ requests ํจํค์ง๊ฐ ์ถ๊ฐ๋ผ์์ต๋๋ค.
requirements.txt ๋ ํจํค์ง ์ค์น ์ ์๋์ผ๋ก ์ถ๊ฐ๊ฐ ์ ๋๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ํด์ค์ผํ๋๋ฐ
์์ผ๋ก๋ ๋งค๋ฒ pip freeze > requirements.txt ๋ฅผ ํ ํ์๊ฐ ์์ต๋๋ค.