Create virtual environments for Python with Conda
프론트엔드 개발자도 가상환경을 만들 줄 알면 좋다! 물론 백엔드 개발자가 대신 세팅해주는 경우가 많다고 하지만… 결국은 프론트엔드 개발자의 업무 안에도, 가상환경에서 프로젝트를 실행시켜보는 것이 포함되어 있기 때문에, 인정받는 개발자가 되기 위해서는 잊지 말고 기억해두는 것이 좋다(고 합니다…).
가상환경이란 무엇일까?
가상환경(Virtual Environment)은, 로컬 컴퓨터의 기본 설정 자체를 바꾸지 않고, 새로운 가상의 파이썬 환경을 만들어서, 서로 다른 파이썬 프로젝트들 간의 독립성을 유지시켜주는 툴이다. 아래의 스텝을 순서대로 밟다 보면 더 자세한 설명을 보고 이해할 수 있을 것이다!
어쨌든, 오늘의 TIL에서는 conda
를 통해 파이썬 기반의 가상환경을 만드는 과정을 정리해보고자 한다. 잊어버리지 않으려 여러번 반복해보고, 블로그에도 적어둔다. 나 뿐만 아니라 모두를 위해!
1.일단은 Linux 환경에 Python
을 설치해야 한다. 왜?? 파이썬 기반의 가상환경을 만드려는 것이기 때문이다. 현재 리눅스 환경에 파이썬이 설치되어 있는지 버전을 확인하는 command인 python --version
으로 확인해보고, 파이썬이 없다면 설치를 진행한다. Linux 환경에 Python을 설치하는 방법은 다음 포스트에 잘 설명되어 있다. (여기)
2.conda
도 설치해야 한다. 이미 제목에 소개되었으니 당연한 거지만, 바로 이 conda
를 사용해 가상환경을 만들 것이기 때문이다.
갑자기 이야기가 다른 곳으로 튀는 것 같지만, conda
는 정확히 무엇일까? 다들 정확히 알고 쓰는거 맞나?
또 나만 모르는건가? 나는 아직 초짜이기 때문에 궁금한 것이 많다… 그리고 어제 한 블로그 글을 읽었는데, 내가 정말 잘 이해했다고 말할 수 있으려면 이걸 할머니에게도 설명해 이해시켜드릴 수 있어야 한다고 한다! 너무 어려워서 짜증이 나신 우리 할머니의 표정을 상상하며 conda
에 대한 설명글을 써 보도록 하겠다.
conda
는 기본적으로 package management system 이자 environment management system 이다. 패키지 매니저라고도 불리는 package management system은, linux 환경에서의 homebrew와 같이 프로그램(package)을 설치하고, 업그레이드하고, 지우는 등의 관리 과정을 자동화해주는 시스템을 의미한다. 그냥 쉽게 이야기해 프로그램 설치를 도와주는 친구라고 보면 된다.
또 여기서 중요한 점은, conda
의 경우 패키지 매니저뿐만 아니라 environment management system 의 역할도 한다는 것이다!! 만일 다른 버전의 python
을 필요로 하는 패키지를 설치해야 한다면, 내 local 컴퓨터의 파이썬 버전을 아예 바꿔야 할까? 난 이 버전을 다른 프로젝트에서도 계속 써야 하는데…? 당연히 아니다. 내 local 컴퓨터에 새로운 가상환경을 만들고, 그 안에 필요한 버전의 python
을 설치하면 된다. 근데 이 모든 것이 conda
하나로 가능하다는 점! 왜냐면 conda
는 패키지 매니저이면서도, 동시에 가상환경을 만들 수 있는 environment management system(환경 관리 시스템!)이기까지 하기 때문이다! 불편하게 다른 environment manager를 통해 가상환경을 설치하고, 또 다른 package manager 를 사용해 패키지를 설치할 필요가 없는 것이다. conda
를 통해 몇 가지 command만 실행하면, 내 local computer 환경에서는 내가 평소에 쓰던 python
버전을 유지하면서 새로운 가상환경을 만들고, 그 안에 다른 버전의 python
을 설치할 수 있다! 이게 바로 우리가 오늘 하려는 것이다. ^~^ 멋있다…
3.conda
가 성공적으로 설치되었다면, 이제 드디어 가상환경을 만드는 command를 사용할 수 있게 되었다!! 바로 다음 command이다.
conda create --name djangoVE python=3.7
-
conda
를 사용해, -
create
가상환경을 만들건데, -
--name
그것의 이름은!! -
djangoVE
야!!! -
python=3.7
버전으로 만들거야!!하나하나 이해해보니 쉽다. 다른 파이썬 버전의 가상환경을 만들고 싶으면, 당연한 거지만 마지막 버전정보만 바꿔주면 된다.
4.가상환경이 잘 만들어졌는지 확인해보자!
~ conda info --envs`
현재 설치된 environment(가상환경)들의 정보를 달라는 뜻이다. 그럼 다음과 비슷한 결과를 마주할 수 있다.
# conda environments:
#
base * /Users/jenga/miniconda3
djangoVE /Users/jenga/miniconda3/envs/djangoVE
이렇게 user의, miniconda라는 디렉토리의, environments 디렉토리의, djangoVE라는 가상환경이 만들어졌다!
5.가상환경을 만들었다고 끝이 난 게 아니다. 물론 포스트 제목은 가상환경 만들기지만… 가상환경을 실행해야 그 안에서 프로젝트를 하겠지…? …
가상환경 실행은 source
라는 command를 사용한다.
자 여기서 질문!!!
왜 source
command 를 사용하는 걸까? source
는 설정 파일을 수정했을 때에, 변경 사항을 바로 실행하고 싶을 때 앞에 붙이는 command 이다. ‘설정 파일’을 변경하는 경우, 변경 사항이 바로 적용되지 않는다는 점을 기억해야 한다!!! source
를 사용하지 않는다면, 리눅스를 재시작하는 방법도 있다.
source activate djangoVE
6.위 커맨드로 djangeVE 가상환경을 실행해서 프로젝트를 진행했다고 치자. 다시 해당 가상환경을 빠져나오고 싶다면, command는 아주 간단하다.
source deactivate
- 만약 당신의
conda
가 최신 버전이라면,source deactivate
라는 command가 deprecated(더이상 쓰지 않아서)되어서conda deactivate
라는 command를 쓰라고 경고메세지가 뜰 수도 있다. 그러면 콘다의 말을 잘 들으면 된다!^^