Virtual Enviroment - minnie0531/fastapi-template GitHub Wiki
development-staging-productionํ๊ฒฝ์ alignment.
๊ฐ๋ฐ์๋ค ์ญ์ ๊ฐ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ฐ๋ฐํ๊ธฐ ๋๋ฌธ์ ํ๊ฒฝ์ ๋ํ ์ด์ ๋ฐ์์ ์ฝ๊ฒ ํด๊ฒฐ ๊ฐ๋ฅ.
ํ๋ก์ ํธ๊ฐ ๋ง๊ณ ๊ฐ๋ฐ์๋ค์ด ๋ง์ ๊ฒฝ์ฐ ๊ผญ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
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 ์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ์ธ์.
venv์ ๊ฑฐ์ ๋์ผํ ๊ธฐ๋ฅ์ด๋ ์์ ์ด์ผ๊ธฐ ํ๋ฏ์ด venv๊ฐ 3.3๋ถํฐ ๊ณต์์ง์์ด๊ธฐ ๋๋ฌธ์ ์ด๋ณด๋ค ๋ฎ์ ๋ฒ์ ์ ๊ฒฝ์ฐ virtualevn๋ฅผ ์ค์นํ์ฌ ์งํํฉ๋๋ค. ์ฌ์ฉ๋ฐฉ๋ฒ์ ์คํ์ venv๋์ vitualenv๋ฅผ ์ฌ์ฉํ๊ณ , activation ๋ถํฐ๋ ์์ ๋์ผํฉ๋๋ค.
python2 -m vitualenv <venv-name>
์์ ๋ 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๋ก ๊ฐ์ํ๊ฒฝ์ ์ข
๋ฃ ํฉ๋๋ค.