프론트엔드 개발자도 가상환경을 만들 줄 알면 좋다! 물론 백엔드 개발자가 대신 세팅해주는 경우가 많다고 하지만… 결국은 프론트엔드 개발자의 업무 안에도, 가상환경에서 프로젝트를 실행시켜보는 것이 포함되어 있기 때문에, 인정받는 개발자가 되기 위해서는 잊지 말고 기억해두는 것이 좋다(고 합니다…).

가상환경이란 무엇일까?

가상환경(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를 쓰라고 경고메세지가 뜰 수도 있다. 그러면 콘다의 말을 잘 들으면 된다!^^