๐ uv ์ฌ์ฉ๋ฒ ๊ฐ๋จ ์ ๋ฆฌ
1. ๊ฐ์ํ๊ฒฝ ํด์
๊ธฐ์กด์ ํ์ฑํ๋ .venv ๊ฐ์ํ๊ฒฝ์ด ์๋ค๋ฉด deactivate ๋ช ๋ น์ด๋ก ๋นํ์ฑํํฉ๋๋ค.
deactivate
2. uv ์ด๊ธฐ ์ค์
uv init ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ํ๋ก์ ํธ ๊ธฐ๋ณธ ํ์ผ๋ค์ด ์์ฑ๋ฉ๋๋ค.
- .gitignore
- .python-version
- main.py
- pyproject.toml
- README.md
์ดํ **uv run python**์ ์คํํ๋ฉด .venv ๊ฐ์ํ๊ฒฝ ํด๋์ uv.lock ํ์ผ์ด ์์ฑ๋๋ฉฐ ๊ฐ์ํ๊ฒฝ์ด ๊ตฌ์ถ๋ฉ๋๋ค.
3. ํ์ด์ฌ ๋ฒ์ ๋ณ๊ฒฝ ๋ฒ์ ๊ด๋ฆฌ ๐ง
.python-version ํ์ผ์ ์ํ๋ ํ์ด์ฌ ๋ฒ์ ์ ์์ ํฉ๋๋ค. (์: 3.11 -> 3.12)
# .python-version ํ์ผ ๋ด์ฉ
3.12
์์ ํ **uv run python**์ ๋ค์ ์คํํ๋ฉด uv๊ฐ ํด๋น ๋ฒ์ ์ ๊ฐ์งํ์ฌ ์๋์ผ๋ก ์ค์นํ๊ณ ์ ์ฉํด ์ค๋๋ค.
4. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ (pyproject.toml & uv.lock)
uv๋ pyproject.toml ํ์ผ์ ํตํด ํ๋ก์ ํธ์ ์์กด์ฑ์ ๊ด๋ฆฌํฉ๋๋ค.
- ํจํค์ง ์ถ๊ฐ: uv add [ํจํค์ง๋ช
]
- ์: uv add numpy
- ๋ช ๋ น์ด ์คํ ์, numpy๊ฐ ๊ฐ์ํ๊ฒฝ์ ์ค์น๋๊ณ pyproject.toml๊ณผ uv.lock ํ์ผ์ ํด๋น ์์กด์ฑ์ด ๊ธฐ๋ก๋ฉ๋๋ค.
- ํจํค์ง ์ญ์ : uv remove [ํจํค์ง๋ช
]
- ์: uv remove numpy
- ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ํ๊ฒฝ์์ ์ญ์ ๋๊ณ , ๊ด๋ จ ํ์ผ์์๋ ๋ด์ฉ์ด ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
pyproject.toml์ ์ค์น๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก์ ๊ฐ๊ฒฐํ๊ฒ ๋ณด์ฌ์ฃผ๊ณ , uv.lock์ ๋ชจ๋ ์์กด์ฑ์ ๋ํ ์์ธ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
5. ํ์ ๋ฐ ํ๊ฒฝ ๋๊ธฐํ ๐ค
.venv ํด๋๋ ์ฉ๋์ด ํฌ๊ธฐ ๋๋ฌธ์ ๋ณดํต .gitignore์ ์ถ๊ฐํ์ฌ Git ์ ์ฅ์์ ์ฌ๋ฆฌ์ง ์์ต๋๋ค.
๋ค๋ฅธ ํ์์ด ํ๋ก์ ํธ๋ฅผ ํด๋ก ํ ํ, ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ผ์ผ์ด ์ค์นํ ํ์ ์์ด uv sync ๋ช ๋ น์ด ํ๋๋ง ์คํํ๋ฉด pyproject.toml๊ณผ uv.lock ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ์์กด์ฑ์ด ์๋์ผ๋ก ์ค์น๋ฉ๋๋ค.
โจ ๊ฟํ: ์ฌ์ค uv run ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ๋ด๋ถ์ ์ผ๋ก uv sync๊ฐ ๋จผ์ ์คํ๋ฉ๋๋ค. ๊ทธ๋์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ uv run๋ง์ผ๋ก๋ ์ถฉ๋ถํฉ๋๋ค!
6. uv add vs uv pip install
| ๋ช ๋ น์ด | pyproject.toml ๊ธฐ๋ก | ์ค๋ช |
| uv add [ํจํค์ง๋ช ] | O (๊ธฐ๋ก๋จ) | ํ๋ก์ ํธ์ ๊ณต์ ์์กด์ฑ์ผ๋ก ์ถ๊ฐ. ํ์ ์ ๊ณต์ ๋จ. |
| uv pip install [ํจํค์ง๋ช ] | X (๊ธฐ๋ก ์๋จ) | ๊ฐ์ํ๊ฒฝ(.venv)์ ์์๋ก ์ค์น๋ง ํ ๋ ์ฌ์ฉ. ํ๋ก์ ํธ ์์กด์ฑ ํ์ผ์๋ ๋ฐ์๋์ง ์์. |
๊ฒฐ๋ก : ํ๋ก์ ํธ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ผญ **uv add**๋ฅผ ์ฌ์ฉํด์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
'Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| FFMPEG ์๋์ฐ ์ค์น ๋ฐฉ๋ฒ (0) | 2025.02.06 |
|---|---|
| Flask์์ celery์ด์ฉํ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ค์ต (0) | 2025.01.13 |
| Flask์์ celery+redis ์ด์ฉํ ๋น๋๊ธฐ ์ฒ๋ฆฌ (0) | 2025.01.10 |
| ํ์ด์ฌ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ asyncio (0) | 2025.01.08 |
| Python Ray ๋ผ์ด๋ธ๋ฌ๋ฆฌ (๋ณ๋ ฌ์ฒ๋ฆฌ) (0) | 2025.01.07 |