NERD WORLD

Windows에서 virtualenv / virtualenv-wrapper 사용하기 본문

Python - Django

Windows에서 virtualenv / virtualenv-wrapper 사용하기

학부생7년차 2016. 6. 10. 13:58

Python Django를 사용해서 개발하다보면 여러가지 패키지들의 도움을 받게 된다(사실 Django도 엄밀히 얘기하면 Python 패키지로 분류될 것이다). Python 패키지는 pip라는 패키지 인스톨러를 사용해서 CLI로 쉽게 다운로드 받을 수 있다. Windows 환경에서 Python 공식 홈페이지의 안내를 따라서 Python을 설치하고나면 pip도 자동으로 함께 설치가 되니 바로 사용할 수 있다.


아직까지 내가 하는 개발은 낮은 레벨이기 때문에 그런 경우가 없었지만, 실서비스를 개발하는 경우에는 프로젝트가 개발하는 과정에서 사용한 패키지의 버전에 의존성을 지니는 경우가 많다고 한다. 즉, 내가 개발자이고 어떤 두 팀의 프로젝트에 참여하고 있는데 한쪽 프로젝트에서는 Django 1.7을 사용해야하고, 다른 프로젝트에서는 Django 1.9를 사용하는 것이다. 이런 상황에서 내가 사용하는 개발 PC가 하나 뿐 이라면? Django 1.7을 설치해서 개발하다가, 제거하고, Django 1.9를 설치하고, 제거하고.... 하는 번거로운 작업을 감수해야만 할까?


이런 경우에 virtualenv 라는 패키지가 훌륭한 솔루션을 제공해준다고 한다. 이름에서 알 수 있듯이 "가상환경"이다. 하나의 PC 위에 가상머신으로 여러개의 OS를 설치해서 각 OS에서는 자신이 이 PC를 독점하고 있는것처럼 인식하게 해서 사용할 수 있듯이, 하나의 PC 위에 가상의 개발환경을 여러개 구성해놓고, 각 개발환경을 쉽게 옮겨다닐 수 있게 도와준다. 이렇듯 유용한 virtualenv의 사용을 더 수월하게 도와주는 패키지가 virtualenvwrapper. virtualenv 자체를 사용할때는 커맨드가 좀 복잡한데, 이를 더 간단한 커맨드로 사용할 수 있게 감싸주는 프로그램이다. 이름이 wrapper라는 것에서 유추된다.


아래는 실습 과정의 기록이다. 기본적으로 실습 PC에 Python(과 pip)이 설치되어있다고 가정한다. 아래 링크의 Python 공식 홈페이지의 virtualenvwrapper-win 소개 문서를 많이 참고하였다.


Python Package Index > virtualenvwrapper-win 1.2.1 소개


virtualenvvirtualenvwrapper 패키지를 설치한다. virtualenvwrapper 자체는 OSX/Linux 기반이므로, Windows를 위해서 개발된 virtualenvwrapper-win을 사용한다.

> pip install virtualenv

> pip install virtualenvwrapper-win

아래처럼 mkvirtualenv 커맨드를 인식할 경우 성공이다.

> mkvirtualenv


Pass a name to create a new virtualenv

"WORKON_HOME" 환경변수를 설정한다. 생성한 virtualenv 들이 저장될 디렉토리 위치이다. 원하는 디렉토리로 설정하면 된다. 

> setx WORKON_HOME 원하는_디렉토리_위치

setx 커맨드로 새로 생성한 환경변수는, 현재 프롬포트 창에서는 반영이 안되어있으므로, 끄고 새로운 프롬포트를 실행한다. mkvirtualenv 커맨드로 새로운 가상환경을 생성한다. 생성뒤에 자동으로 그 가상환경으로 진입한다.

> mkvirtualenv 원하는_가상환경_이름

...

(원하는_가상환경_이름) > 

deactivate 커맨드로 가상환경을 끌 수 있다.


(원하는_가상환경_이름) > deactivate

...

>

workon 커맨드로 가상환경에 진입할 수 있다. (가상환경_이름)이 표시되면 해당 가상환경에 진입한 것이다.

> workon 원하는_가상환경_이름

...

(원하는_가상환경_이름) >

가상환경에 진입한 뒤에 pip로 설치한 Python 패키지는, 해당 가상환경에서만 유효하다. 아래와 같이 가상환경에서 pip로 Django를 설치한다.

(원하는_가상환경_이름) > pip install django

pip list 커맨드로 확인해보면 Django가 설치됬음을 확인할 수 있다.



가상환경 밖으로 나와서 pip list 커맨드로 확인해보면 Django가 설치되어있지 않음을 확인할 수 있다.


cf) virtualenv를 activate 하고 나서, setprojectdir <full or relative path> 커맨드를 사용해서 path를 지정할 수 있다. 그 다음에 해당 virtualenv를 activate 하면 자동으로 저 path로 이동한다.

Comments