Virtual Enviroment - minnie0531/fastapi-template GitHub Wiki

๊ฐ€์ƒํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

development-staging-productionํ™˜๊ฒฝ์˜ alignment.

๊ฐœ๋ฐœ์ž๋“ค ์—ญ์‹œ ๊ฐ™์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ด์Šˆ ๋ฐœ์ƒ์‹œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ.

ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŽ๊ณ  ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŽ์„ ๊ฒฝ์šฐ ๊ผญ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

venv

python 3.3 ์ดํ›„ python์— ๊ธฐ๋ณธ์œผ๋กœ ํฌํ•จ๋œ ๋‚ด์žฅ ๋ชจ๋“ˆ๋กœ virtualํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ๋ฐฉ๋ฒ•
python3 -m venv <venv-name> 
source venv/bin/activate (Linux) 
venv/Script/activate.bat ์‹คํ–‰ (Window)

activate ์ดํ›„ pip install์„ ์ด์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๋ฉด venv/lib/python3.x/site-packages์—์„œ ํ˜„์žฌ vitualenv ์— ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๋ชจ๋“ˆ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ฒ˜์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  requirments.txt๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์•„๋ž˜ ์ปค๋งจ๋“œ๋ฅผ ์ด์šฉํ•˜์„ธ์š”.

(-l If in a virtualenv that has global access, do not output globally-installed packages.

pip freeze -l > -r requirements.txt

๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ข…๋ฃŒ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” deactivate ์ปค๋งจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

virtualenv

venv์™€ ๊ฑฐ์˜ ๋™์ผํ•œ ๊ธฐ๋Šฅ์ด๋‚˜ ์•ž์„œ ์ด์•ผ๊ธฐ ํ–ˆ๋“ฏ์ด venv๊ฐ€ 3.3๋ถ€ํ„ฐ ๊ณต์‹์ง€์›์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ณด๋‹ค ๋‚ฎ์€ ๋ฒ„์ „์˜ ๊ฒฝ์šฐ virtualevn๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ์‹คํ–‰์‹œ venv๋Œ€์‹  vitualenv๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , activation ๋ถ€ํ„ฐ๋Š” ์œ„์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. python2 -m vitualenv <venv-name>

pipenv

์œ„์˜ ๋‘ virtualization๋ชจ๋“ˆ๊ณผ ๋‹ฌ๋ฆฌ dependency management๋ฅผ ๊ฐ™์ด ํ•ด ์ค๋‹ˆ๋‹ค. node์˜ npm๊ณผ ๋‹ค์†Œ ๋น„์Šทํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™”๊ฐ€๋˜๋ฉด pipfile๊ณผ Pipfile.lock์ด ์ƒ์„ฑ๋˜๊ณ  Pipfile.lock์—์„œ pipfile์— ์žˆ๋Š” ๋ชจ๋“ˆ๊ฐ„์˜ dependency ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•ด ์ค๋‹ˆ๋‹ค. (python์˜ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „ ๊ธฐ์ค€์œผ๋กœ ์„ค์น˜ ๋˜๋Š”๋ฐ ๋ชจ๋“ˆ๊ฐ„ dependency๋กœ ์ธํ•ด ์„ค์น˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์‹คํ–‰์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

  • ์„ค์น˜๋ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
pip install pipenv
pipenv shell (activation)
pipenv install <module name> (installation)

exit๋กœ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ข…๋ฃŒ ํ•ฉ๋‹ˆ๋‹ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ