가상환경은 백엔드 개발에서 매우 중요한 도구이다. 가상환경은 특정 프로젝트에 필요한 패키지와 의존성을 독립적으로 관리할 수 있는 방법을 제공한다.
가상환경은 특정 프로젝트에 필요한 패키지, 라이브러리, 의존성, 그리고 심지어 특정 Python 버전을 격리하여 관리할 수 있는 독립적인 환경이다. 각 가상환경은 고유의 디렉토리 구조를 가지고 있으며, 전역 설치된 의존성과 독립적으로 동작한다.
requirements.txt 또는 poetry.lock 같은 파일을 활용해 의존성을 재현할 수 있다.pip install로 패키지를 설치할 때, 가상환경 내에서만 적용된다.venv : Python 표준 가상환경python에는 내장된 가상환경 생성 도구 venv가 있다.
cd my_project #프로젝트 디렉토리로 이동
python3 -m venv myvenv #가상환경 생성
source myvenv/bin/activate #macOS 가상환경 활성화
myvenv\Scripts\activate #Windows 가상환경 활성화
deactivate #가상환경 비활성화
virtualenv : 가상환경 관리 도구virtualenv는 Python 표준 라이브러리 이전부터 사용되던 가상환경 생성 도구이다.
pip install virtualenv #설치
virtualenv venv #가상환경 생성
source myvenv/bin/activate #macOS 가상환경 활성화
myvenv\Scripts\activate #Windows 가상환경 활성화
deactivate #가상환경 비활성화
pipenv : 고급 패키지 관리 도구pipenv는 가상환경과 패키지 관리를 통합적으로 처리하는 도구이다.
pip install pipenv #설치
pipenv install requests #가상환경 생성 및 의존성 설치
pipenv shell #가상환경 활성화
exit #가상환경 비활성화
pyenv : Python버전 관리와 가상환경pyenv는 Python 버전을 관리하고, 특정 버전을 기반으로 가상환경을 생성하는데 유용하다.
brew install pyenv #macOS 설치
pyenv install 3.10.6 #파이썬 버전 설치
#가상환경 생성 : pyenv와 virtualenv를 결합한 pyenv-virtualenv를 사용
pyenv virtualenv 3.10.6 my_project_env
pyenv activate my_project_env #가상환경 활성화
pyenv deactivate #가상환경 비활성화
프로젝트의 의존성을 저장하여 다른 환경에서도 동일한 의존성을 설치할 수 있다.
의존성 저장
pip freeze > requirements.txt
의존성 설치
pip install -r requirements.txt