<aside> ๐ก ํจํค์ง ์์กด์ฑ ๋ฐ ๊ฐ์ํ๊ฒฝ์ ํ๋์ ํด์์ ํธ๋ฆฌํ๊ฒ ๊ด๋ฆฌ ๊ฐ๋ฅ
</aside>
ํ๋ก์ ํธ ์ค์ ํ pyproject.toml์ ํ๋ก์ ํธ ๋ฉํ๋ฐ์ดํฐ์ ์์กด์ฑ ๊ธฐ๋ก๋จ
๊ธฐ๋ก๋ ์์กด์ฑ์ ์ค์นํ ๋ poetry.lock ํ์ผ ์ฐธ์กฐ โ Github์ ์ปค๋ฐํด์ผ ํ์
์ ๋ชจ๋๊ฐ ๊ฐ์ ๋ฒ์ ์ ์์กด์ฑ ์์์ ์์
ํ ์ ์๋ค
poetry.lock ์ด ์๋ ์ต์ด์ ๊ฒฝ์ฐ pyproject.toml ์ ๊ธฐ๋ก๋ ์์กด์ฑ์ ์ค์นํ๊ณ ์ด๋ฅผ poetry.lock ํ์ผ ์์ฑ ํ ์์กด์ฑ๊ณผ ๋ฒ์ ์ ๋ช
์ํ์ฌ ์ ์ฅpoetry.lock ์ด ์กด์ฌํ๋ฉด ๋์ผํ๊ฒ pyproject.toml ์ ๊ธฐ๋ก๋ ์์กด์ฑ์ ์ค์นํ์ง๋ง, poetry.lock ์ ๋ช
์๋ ๋ฒ์ ์ฌ์ฉpoetry.lock ๋ง ํ์ ๊ด๋ฆฌ๊ฐ ์ ๋์ด ์๋ค๋ฉด ํ์
์ ๋ฌธ์ ๊ฐ ์๋ค์ฃผ์ ๋ช ๋ น์ด
# poetry ๋ฒ์ ์
๊ทธ๋ ์ด๋
poetry self update
# ์ ๊ท ํ๋ก์ ํธ ์ค์
poetry new [new project name]
# ๊ธฐ์กด ํ๋ก์ ํธ ์ค์ (ํ๋ก์ ํธ ๋ฃจํธ๋ก ์ด๋ ํ)
poetry init
# ์์กด์ฑ(ํจํค์ง) ์ถ๊ฐ
**poetry add <package name>[==version]
# ์ด๋ฏธ ์กด์ฌํ๋ ํจํค์ง์ ๋ฒ์ ์์
poetry add <package name><==version>
poetry add <package name>@latest**
# ์์กด์ฑ ์ญ์
**poetry remove <package name>**
# ์์กด์ฑ ์ค์น
poetry install
# poetry.lock์ ํ์ฌ ํ๊ฒฝ์ ๋ฐ์
# --dry-run ์ต์
์ผ๋ก ์ค์ ๋ฐ์์ด ์๋ ์ฒดํฌ๋ง ๊ฐ๋ฅ
**poetry install --sync**
# ๊ฐ์ํ๊ฒฝ ํ์ฑํ
**poetry shell**
# ๊ฐ์ํ๊ฒฝ ๋นํ์ฑํ/์ข
๋ฃ
deactivate
exit
# ์คํฌ๋ฆฝํธ ์คํ
poetry run <command>
# ํ์ฌ ํ๊ฒฝ์ ์์กด์ฑ์ poetry.lock์ ๋ฐ์
poetry update [dependency,]
# pyproject.toml ๊ฒ์ฆ
# pyproject.toml๊ณผ poetry.lock ์ผ๊ด์ฑ ํ์ธ
poetry check
# ์ค์น๋ ํจํค์ง ํ์ธ (ํ์ผ ๊ธฐ์ค)
# pip show <package name>์ผ๋ก ํด์ผ ๊ฐ์ํ๊ฒฝ์ ํจํค์ง ๋ฒ์ ์ ๋ณด์ฌ์ฃผ๋ ๋ฏํ๋ค
poetry show [package name]
# lock file์ ํจํค์ง๋ค์ ํธํ๊ฐ๋ฅํ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ (์ค์น๋ ํ์ง ์๋๋ค)
# --no-update ์ต์
์ผ๋ก ์
๋ฐ์ดํธ ์์ด refresh (pyproject.toml์ ๋ง๊ฒ)
poetry lock
# ๊ฐ์ํ๊ฒฝ ์ ๋ณด
poetry env info
https://github.com/PREDICTIONAI/BE-QB-EDITOR/pull/315/files
requirements.txt์์ ๊ด๋ฆฌํ๋ ์์กด์ฑ ๋ง์ด๊ทธ๋ ์ด์
poetry ๊ฐ์ํ๊ฒฝ ํ์ฑํ ํpoetry add $(cat <requirements.txt ํ์ผ ๊ฒฝ๋ก>)
Dockerfile์์ ์์กด์ฑ ์ค์น ๋ช ๋ น
--no-root ์ต์
๊ณผ ํจ๊ป ์ค์นํด์ผ ํ๋คpoetry install --no-root
โฃ
pre commit
# ...
- repo: <https://github.com/python-poetry/poetry>
rev: "1.8"
hooks:
- id: poetry-check
- id: poetry-lock
args: [ --no-update ]