2013년 12월 24일 화요일

virtualenv를 사용하자 - 가상 개발환경 구축하기

Python 개발 환경을 각 프로젝트별로 분리시키고 싶다면? virtualenv를 사용하면 됩니다. 예를 들어, 새로 시작한 프로젝트에 Django v1.5.5, Numpy v1.7.1이 필요한 경우 전체 시스템에 해당 패키지를 설치할 필요없이 virtualenv로 해당 프로젝트만을 위한 가상 개발환경을 만들 수 있어요. 사용법은 간단합니다.


기본적인 사용법

  • sudo pip install virtualenv
  • 작업할 폴더를 생성합니다.
  • 해당 폴더로 이동하여 virtualenv venv와 같이 실행하면 venv 폴더가 생길겁니다.
  • Shell에서 . venv/bin/activate 명령을 실행해주세요. Shell prompt에 (venv)라는 표시가 보여 가상환경 안에 있음을 알려줍니다. 
  • 가상환경 안에 설치하는 모든 Python package는 해당 프로젝트의 venv 폴더안에 설치되고 이 가상환경 안에서만 사용할 수 있습니다.
  • venv 폴더를 지우면 가상환경에 설치한 모든 package를 다 삭제할 수 있어요. HDD 공간이 아쉽고 더이상 프로젝트에 쓸시간이 없다면 싹 지워버리세요.


다른 컴퓨터에 동일한 개발환경 구축

virtualenv를 사용하면 개발환경을 다른 컴퓨터로 그대로 옮기는 작업도 아주 쉽습니다. 아시죠 이거 나름 골치아픈일인거...

1. virtualenv 환경안에 설치된 package 목록 리스트를 얻을 수 있습니다.
  • pip freeze > requirements.txt
2. txt 파일에는 아래와 같이 가상환경에 설치된 package들의 이름과 버전이 기록되어집니다.
Django==1.5.5
IPy==0.81
MySQL-python==1.2.4
PyYAML==3.10
South==0.8.2
astroid==1.0.1
boto==2.4.1

3. 새로운 개발환경에 virtualenv를 설치하고 앞에 설명한 것처럼 가상환경을 만들어줍니다. 그런 후 pip을 이용하여 필요한 package를 설치합니다.
  • pip install -r requirements.txt

다른 버전의 Python 인터프리터 사용

Python 인터프리터의 버전 별 가상환경 구축도 가능합니다. Python 3.3 버전의 가상환경을 구축하고 싶다면.
  • virtualenv --python=python3.3 venv

소스코드를 이용하여 virtual environment에 설치

다운로드 받은 Python 소스코드를 virtual environment에 설치할 수도 있습니다.

1. 소스코드를 temp 폴더에 저장합니다. 예: scrapy 패키지를 scrapy_temp 폴더에 저장
2. temp 폴더(scrapy_temp)로 이동합니다.
3. setup.py를 설치하려는 가상환경의 python 인터프리터로 실행합니다.
~/myworks/test_prj/venv/bin/python setup.py install

위 경우에는 scrapy 패키지가 test_prj 가상환경에 설치 됩니다.

댓글 2개:

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. 좋은정보 고맙습니다!!
    그러고 보니 작년 크리스마스 이브에 작성하셨네요 ㅎㅎㅎ

    답글삭제