[s2n] python venv ์์ ์ ๋ณต
November 12, 2025
์ด๋ฒ ํ๋ก์ ํธ์์๋ venv๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ด๊ฒ ๋ญ์ง, ์ ์ฐ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ด์ ๊ฐ๋ ์ ์ ๋ฆฌํด ๋ณด๊ณ ์ ์ด ํฌ์คํ ์ ์์ฑํ๊ฒ ๋์๋ค.
1. venv๋?
= virtual environment ์ฆ, ํ๋ก์ ํธ๋ง๋ค ๋ ๋ฆฝ๋ ํ์ด์ฌ ํ๊ฒฝ(ํ์ด์ฌ ๋ฒ์ + ํจํค์ง ๋ชฉ๋ก)์ ๋ง๋ค์ด์ฃผ๋ ๊ธฐ์ ์ด๋ค. ์ด ํ๊ฒฝ ์์๋ ํ์ด์ฌ ์คํํ์ผ, pip ํจํค์ง, ์ฐ๋ฆฌ๊ฐ ์ค์นํ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ชจ๋ ํ๋ก์ ํธ ์ ์ฉ์ผ๋ก ๋ฐ๋ก ์ ์ฅ๋๋ค. ์ฆ, ์์คํ ์ ์ฒด์ ํ์ด์ฌ๊ณผ ์ถฉ๋ํ์ง ์๋๋ค!
2. venv๊ฐ ํ์ํ ์ด์ ๋?
(1) ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅธ ํจํค์ง ๋ฒ์ ์ด ํ์ํจ
์๋ฅผ ๋ค์ด, ํ๋ก์ ํธ A๋ Django==3.2, B๋ Django==5.0 ๋ก ๋์ด ์๋ค๊ณ ํ์. venv๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด, pip install์ ํ๋ฉด ์์คํ ์ ์ฒด ํจํค์ง๊ฐ ๋ฐ๋๊ฒ ๋๋ค. A/B๊ฐ ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ ํ์๋ก ํจ์๋ ๋ถ๊ตฌํ๊ณ ๋ ์ค ํ๋๋ ๋ฐ๋์ ๊นจ์ง๋ค. ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ผฌ์ด๊ณ , import ์๋ฌ๊ฐ ๋จ๊ณ , ํ๋ก์ ํธ ์ฌํ์ด ์ด๋ ค์์ง๋ค. venv๋ฅผ ์ฌ์ฉํ๋ฉด, A์ venv์๋ 3.2, B์ venv์๋ 5.0์ด ๋ ๋ฆฝ์ ์ธ ๊ณต๊ฐ์์ ์ฌ์ฉ๋์ด ์ ๋ ์ถฉ๋ํ์ง ์๋๋ค.
(2) ํ ํ๋ก์ ํธ์์ ํ๊ฒฝ ํต์ผ์ด ์ ๋๋ฉด ์ฌํ์ด ์ ๋จ!
- ๋ ๋๋๋ฐ ์ ๋ ์ ๋จ?
- pip ํจํค์ง ๋ฒ์ ๋ญ๋๋ผ?
- ๋ ๋ก์ปฌ์์ 3.11๋ก ํ๋๋ฐ ๋ ์ 3.10์ด์ผ?
- ํจํค์ง ๋ฒ์ ๋ฌ๋ผ์ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ
์ด๋ฐ ๋ฌธ์ ๋ฅผ ๊ฒช์ด๋ณธ ์ ์ด ์์ ๊ฒ์ด๋ค. ํนํ ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ beautifulsoup, selenium, requests, pytest ๋ฑ ์ฌ์ฉํ๋ ๊ฒ ๋ง์์ ์์กด์ฑ์ด ๋ณต์กํด ํ์ ํ๋ช ์ด๋ผ๋ ๋ฒ์ ์ด ์ด๊ธ๋๋ฉด ์ ์ฒด๊ฐ ๊นจ์ง ์ ์๋ค. ์ด๋ฅผ ์ํด venv + requirements.txt ์กฐํฉ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํ์์ด ์๋ฒฝํ ๋์ผํ ํ๊ฒฝ์์ ์์ ์ด ๊ฐ๋ฅํ๋ค.
(3) ์์คํ ํ์ด์ฌ์ ๋ง๊ฐ๋จ๋ฆฌ์ง ์๊ธฐ ์ํด
macOS๋ ๋ด๋ถ์ ์ผ๋ก ์ฌ๋ฌ ์์คํ ๋๊ตฌ๊ฐ ํ์ด์ฌ์ ์์กดํ๋ค. ์ฌ๊ธฐ์ pip๋ก ํจํค์ง๋ฅผ ์ค์นํ๋ค ๋ณด๋ฉด
- ์์คํ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฎ์ด์ฐ๊ธฐ
- ๋งฅ ๊ธฐ๋ณธ ๋๊ตฌ ๊ณ ์ฅ
- PATH ์ถฉ๋๋ก ํ์ด์ฌ ๋ช ๋ น ์์ฒด๊ฐ ์ฌ๋ผ์ง
๋ฑ ์์ฃผ ๋ง์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๋ค. ๊ทธ๋์ venv๋ฅผ ์ฌ์ฉํด ์์คํ ํ์ด์ฌ์ ์ต์ํ์ผ๋ก ์ ์งํด์ผ ํ๋ค.
(4) python ๋ช ๋ น์ ํ๋ก์ ํธ๋ณ๋ก ๋ค๋ฅด๊ฒ ์ฌ์ฉํ ์ ์๋ค
venv๋ฅผ ์ผ์ง ์๊ณ python -m ~~ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด โzsh: command not found: pythonโ์ด๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค. ์ฌ๊ธฐ์ venv๋ฅผ ํ์ฑํํ๋ฉด ํ๋ก์ ํธ ๋ด๋ถ์ ํ์ด์ฌ์ด ์คํ๋์ด ๋ช ๋ น์ด๋ฅผ ์คํํ ์ ์๋ค. ์ฆ, venv๋ python ๋ช ๋ น ์์ฒด๋ฅผ ํ๋ก์ ํธ ์ ์ฉ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ์ญํ ๋ ํ๋ค.
3. venv๋ ์ด๋ป๊ฒ ๋์ํ๋?
.venv/ (ํน์ .env/, .envs/)๋ผ๋ ํด๋๊ฐ ์์ฑ๋๋ค. ์ด ์์
- bin/python (ํ์ด์ฌ ์คํํ์ผ)
- lib/python3.11/site-packages/ (ํจํค์ง ์ค์น ๋๋ ํ ๋ฆฌ)
- pip, pytest ๋ฑ CLI ๋๊ตฌ
๊ฐ ๋ค์ด์๋ค. ํ์ฑํ๋ฅผ ํ๋ฉด PATH์ ์ต์ฐ์ ์์๋ฅผ .venv/bin์ผ๋ก ๊ต์ฒดํ๊ฒ ๋๋ค. ์ฆ ์ฐ๋ฆฌ๊ฐ ์ ๋ ฅํ๋ ๋ชจ๋ python/pip ๋ช ๋ น์ด ๊ฐ์ํ๊ฒฝ ๋ด๋ถ ๋ช ๋ น์ผ๋ก ๋์ฒด๋๋ค.
4. venv, pyenv๋ ๋ค๋ฅด๋ค.
- pyenv: ํ์ด์ฌ ๋ฒ์ ๊ด๋ฆฌ์
- venv: ํ๋ก์ ํธ๋ณ ํจํค์ง ๊ฒฉ๋ฆฌ ํ๊ฒฝ
์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ ์ด ๋ ๊ฐ๋ฅผ ํจ๊ป ์ฌ์ฉ์ค.
๊ฒฐ๋ก
venv๋
- ํจํค์ง ์ถฉ๋ ๋ฐฉ์ง
- ์์คํ ํ์ด์ฌ ๋ณดํธ
- ํ ํ๋ก์ ํธ ํ๊ฒฝ ํต์ผ
- python/pip ๋ช ๋ น ํ๋ก์ ํธ ์ ์ฉ ๊ด๋ฆฌ
- ์ฌํ์ฑ, ์์ ์ฑ ํฅ์
ํนํ ์์กด์ฑ์ด ๋ง์ ํ๋ก์ ํธ์์๋ ๋ฌด์กฐ๊ฑด ์์ด์ผ ํ๋ค!!!