일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- uWSGI
- IOT
- 위즈네트
- virtualenvwrapper
- windows
- ted
- django
- help_text
- 데이터 이전
- virtualenv
- 마이크로소프트
- 탱크램팩토리
- 샤오미
- 워크샵
- nginx
- LED
- 무브나우
- 스포츠코치
- Python
- 미밴드 1S
- 온오프믹스
- AWS EC2
- 스마트 러닝화
- berkeley db
- 미니 화이트
- PostgreSQL
- restful
- psycopg2
- 아이디어팩토리
- UserCreatioForm
- Today
- Total
NERD WORLD
Windows에서 virtualenv / virtualenv-wrapper 사용하기 본문
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 소개
virtualenv와 virtualenvwrapper 패키지를 설치한다. 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로 이동한다.
'Python - Django' 카테고리의 다른 글
AWS EC2 인스턴스에 Django+Nginx+uWSGI+PostgreSQL로 배포하기 (0) | 2016.06.16 |
---|---|
Django의 Windows 개발환경에서 PostgreSQL 사용하기 (2) | 2016.06.11 |
Django에 uWSGI랑 Nginx 결합하기 (0) | 2016.06.08 |
Django template language이 제공하는 {{ form }} 커스터마이징 (0) | 2016.05.25 |
Django 공식 홈페이지 튜토리얼 - (1) (2) | 2016.03.07 |