파이썬? 가상환경? 이게 뭐야?
조금만..알아보자
4가지가 존재하는지도 몰랐다.
가상 환경(Virtual Environment)?
가상 환경은 독립적인 파이썬 실행 환경을 의미합니다.
각각의 가상 환경은 다른 황경에 영향을 미치지 않으며 각자 다른 종류와 버전의 패키지를 가질 수 있습니다.
가상 환경은 왜 필요한가?
- 프로젝트를 배포하면서 원격 서버에 따로 패키지를 설치해 줘야 하는데, 이 프로젝트가 사용한 패키지가 무엇인지 모른다.
- 내가 프로젝트를 할 때 사용했던 버전과 배포시 사용할 버전이 정확히 일치하는지 모른다.
- 시간이 지남에 따라 패키지가 업데이트 되는데, 서로 의존적인 패키지들 사이에 버전이 맞지 않을 수 있다.
등등...이 존재하게 된다.
가상환경의 종류를 알아보자
1. venv
초심자들에게 가장 많이 추천하는 가상환경입니다.
venv는 대부분의 파이썬 프로젝트들이 따르는 관행이라고 합니다.
python -m venv ENV_NAME
2. pyenv
pyenv의 플러그인으로, virualenv를 이용해 가상환경을 관리해준다. 파이썬 버전을 쉽게 변경할 수 있다는 장점이 있지만,
파이썬 3.6부터는 중요도가 떨어져 파이썬 최신 배포 버전부터는 많이 사용되고 있지 않다고 합니다.
설치
pip3 install pyenv
가상환경 생성
pyenv virtualenv ENV_NAME
가상환경 실행
pyenv activate ENV_NAME
가상환경 종료
pyenv deactivate
3. anaconda(conda)
머신러닝, 데이터과학 분야의 다양한 라이브러리들이 설치된 런타임인 아나콘다 파이썬에서 기본적으로 제공하는 가상환경 모듈입니다.
가상환경 생성
conda create -n ENV_NAME python=3.X
가상환경 실행
conda activate ENV_NAME
4.pipenv
파이썬에서 공식으로 권장하는 가상환경 모듈입니다.
가상환경 생성/제거
pipenv --python 3.X pipenv --rm
가상환경 실행
# Run shell pipenv shell
# Rum custom commands
pipenv run COMMANDS...
- 가상환경 종료
deactivate
예상 질문
가상 환경을 사용하는 이유가 무엇이고, 가상환경이 무엇인지 설명해주세요
가상 환경은 독립적인 파이썬 실행 환경을 의미합니다.
각각의 가상 환경은 다른 황경에 영향을 미치지 않으며 각자 다른 종류와 버전의 패키지를 가질 수 있습니다.
그렇기 때문에 서로 다른 버전의 프로젝트를 같은 로컬 환경에서 가상환경을 통해서 해결할 수 있습니다.