๐ ํ์ด์ฌ ์์กด์ฑ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
Python ํ๋ก์ ํธ์์ ์์กด์ฑ ์ถฉ๋์ด๋ ์ค์น ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณผ๊ฒ์.
1๏ธโฃ ๊ฐ์ ํ๊ฒฝ(venv, conda) ์ค์ ํ ํจํค์ง ์ ๋ฆฌ
๐ก ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ค๊ณ ๊นจ๋ํ ์ํ์์ ๋ค์ ์ค์น
๊ฐ๋ ๊ธฐ์กด ํ๊ฒฝ์ ์ฌ๋ฌ ํจํค์ง๊ฐ ์์ผ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ด์. ์ ๊ฐ์ ํ๊ฒฝ์ ๋ง๋ค๊ณ ํ์ํ ํจํค์ง๋ง ์ค์นํ๋ฉด ์์กด์ฑ ์ถฉ๋์ ์ค์ผ ์ ์์ด์.
๐น venv ์ฌ์ฉ (Python ๊ธฐ๋ณธ ์ ๊ณต)
python -m venv new_env
source new_env/bin/activate # Windows๋ new_env\Scripts\activate
pip install --upgrade pip
pip install -r requirements.txt
์ด๋ ๊ฒ ํ๋ฉด ์ ํ๊ฒฝ์์ ๊นจ๋ํ๊ฒ ์์ํ ์ ์์ด์.
๐น Conda ์ฌ์ฉ (๋ ๊ฐ๋ ฅํ ํ๊ฒฝ ๊ด๋ฆฌ)
conda create -n new_env python=3.10
conda activate new_env
pip install -r requirements.txt
Conda๋ ํจํค์ง ๊ฐ ์์กด์ฑ์ ๋ ์ ๊ด๋ฆฌํด์, ์ถฉ๋์ ์ค์ด๋๋ฐ ๋์์ด ๋ผ์.
2๏ธโฃ pip ์ถฉ๋ ํด๊ฒฐ: ํจํค์ง ์ฌ์ค์น
๐ก ํจํค์ง๋ฅผ ๊ฐ์ ๋ก ๋ค์ ์ค์นํ์ฌ ์ถฉ๋ ํด๊ฒฐ
pip freeze > installed_packages.txt # ํ์ฌ ์ค์น๋ ํจํค์ง ๋ฆฌ์คํธ ๋ฐฑ์
pip uninstall -r installed_packages.txt -y # ๋ชจ๋ ํจํค์ง ์ ๊ฑฐ
pip install --upgrade pip setuptools wheel # ์ต์ pip ์ค์น
pip install -r requirements.txt # ์์กด์ฑ ๋ค์ ์ค์น
์ด๋ ๊ฒ ํ๋ฉด ๊ธฐ์กด ํ๊ฒฝ์์ ์์กด์ฑ ๋ฌธ์ ๋ฅผ ํ ๋ฒ์ ํด๊ฒฐํ ์ ์์ด์.
3๏ธโฃ ํจํค์ง ๋ฒ์ ๋ฌธ์ ํด๊ฒฐ
๐ก ์์กด์ฑ ์ถฉ๋ ์, ๋ฌธ์ ํจํค์ง ํ์ธ ํ ๋ฒ์ ๊ณ ์
pip check # ํ์ฌ ํ๊ฒฝ์์ ์ถฉ๋ํ๋ ํจํค์ง ํ์ธ
pip install "ํจํค์ง๋ช
==ํน์ ๋ฒ์ " # ํน์ ๋ฒ์ ์ผ๋ก ๋ง์ถ๊ธฐ
์๋ฅผ ๋ค์ด, llama-index๊ฐ numpy์ ์ถฉ๋ํ๋ฉด:
pip install numpy==1.23.5
์ด๋ฐ ์์ผ๋ก ๋ฒ์ ์ ๋ง์ถ๋ฉด ํด๊ฒฐ๋ ์ ์์ด์.
4๏ธโฃ FastAPI, LangChain, LlamaIndex ๋ฑ ์ต์ ํจํค์ง ์ถฉ๋ ํด๊ฒฐ
์ต์ AI ๊ด๋ จ ํจํค์ง(LlamaIndex, LangChain ๋ฑ)๋ ์ข ์ข ์์กด์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผ์. pip ๋์ pip-compile์ ์ฌ์ฉํ๋ฉด ์์กด์ฑ์ ์๋์ผ๋ก ์ ๋ฆฌํด์ค์.
pip install pip-tools
pip-compile requirements.in # ์์กด์ฑ ์๋ ์ ๋ฆฌ
pip install -r requirements.txt
5๏ธโฃ Docker ํ์ฉ (์ตํ์ ๋ฐฉ๋ฒ)
์์กด์ฑ ์ถฉ๋์ด ๋๋ฌด ์ฌํ๋ฉด Docker๋ฅผ ์ฌ์ฉํด ์์ ํ ๊ฒฉ๋ฆฌ๋ ํ๊ฒฝ์์ ์คํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด์์.
FROM python:3.10
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "your_script.py"]
์ด๋ฐ ์์ผ๋ก ํ๋ฉด, ์์คํ ์์กด์ฑ๊ณผ ๊ด๊ณ์์ด ๋์ผํ ํ๊ฒฝ์ ์ ์งํ ์ ์์ด์.
๐ ๊ฒฐ๋ก
โ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด? → pip check ํ ๋ฒ์ ๋ง์ถ๊ธฐ
โ ๊นจ๋ํ ํ๊ฒฝ์์ ์ฌ์ค์น? → venv ๋๋ conda ํ์ฉ
โ ์๋์ผ๋ก ์์กด์ฑ์ ์ ๋ฆฌํ๊ณ ์ถ๋ค๋ฉด? → pip-compile ์ฌ์ฉ
โ 100% ์ถฉ๋ ์์ด ์คํํ๋ ค๋ฉด? → Docker ์ฌ์ฉ
๐ venv + pip-compile ์กฐํฉ์ ๋จผ์ ์๋ํ๊ณ , ๊ทธ๋๋ ์ ๋๋ฉด Docker๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ ๊ฐ์ฅ ํ์ค์ ์ธ ํด๊ฒฐ์ฑ !
์ด๋ค ๋ฌธ์ ๊ฐ ์๋์ง ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๋งํด์ฃผ๋ฉด, ์ถ๊ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ ค์ค ์ ์์ด! ๐ฅ
'Areas > [Lang] Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[pandas] melt() ์ฌ์ฉ๋ฒ (0) | 2025.03.09 |
---|---|
TypedDict๋? (0) | 2025.02.20 |
ํ์ด์ฌ์ ์ค์น๋ ํจํค์ง์ ํด๋์ค๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ (0) | 2025.02.09 |
๋งฅ์์ ํ์ด์ฌ ์ฌ๋ฌ ๋ฒ์ ๊ด๋ฆฌํ๋ ๋ฒ (0) | 2025.02.09 |
pip command ๋ฆฌ์คํธ (1) | 2019.11.09 |
country code๋ก timezone ๊ตฌํ๊ธฐ (0) | 2016.11.09 |
python์์ switch/case ์ฒ๋ผ ์ฐ๊ธฐ (0) | 2016.09.07 |