====== Python VirtualEnv ======
* [[https://pypi.python.org/pypi/virtualenv|VirtualEnv]]
* [[python:pipenv|pipenv]] 로 대체될 것으로 보임
* [[python:pyenv|PyEnv]]의 pyenv-virtualenv를 사용할 것.
* Python 언어 버전및 관련 패키지를 시스템 환경이 아닌 개인 계정 환경에 격리하여 설치하고 실행할 수 있게 해주는 도구
* virtualenv는 시스템에 존재하는 Python 설치본에 대해 가상의 디렉토리에 링크를 걸고, 새로운 ''site-packages'' 디렉토리를 만들어주어 라이브러리를 프로젝트 단위로 설치할 수 있게 해준다.
* Python이 라이브러리를 jar 같은 묶음을 CLASSPATH로 넣는 방식으로 관리하지 않고 Python 설치본의 ''site-packages''에 설치해버리기 때문에 프로젝트 단위의 라이브러리 관리가 힘들어서 나온 방법같다.
* [[https://bitbucket.org/dhellmann/virtualenvwrapper|VirtualEnvWrapper]]
* [[http://virtualenvwrapper.readthedocs.org|VirtualEnvWrapper Documentation]]
===== 기본 사용법 =====
* VirtualEnv + Wrapper의 설치
sudo pip install virtualenvwrapper # virtualenv 는 자동 설치
* 가상 환경을 저장할 디렉토리를 생성하고, 환경변수에 등록
mkdir ~/.python_virtual_envs
# 아래 내용을 ~/.bashrc 에 마지막에 저장한다.
export WORKON_HOME=~/.python_virtual_envs
source /usr/local/bin/virtualenvwrapper.sh # 각종 PATH 등을 설정해줌.
* 가상 환경 생성
mkvirtualenv 가상환경이름 # 기본 생성
mkvirtualenv --python=python2.6 가상환경이름 # 특정 파이썬 버전 지정해서 생성
# 가상환경을 생성/확성화하면 $VIRTUAL_ENV 환경 변수에 디렉토리명이 들어간다.
* 가상 환경에 패키지 설치
# 이제부터 실행하는 python, pip등의 명령은 가상 환경에 속한 것들이다.
pip install flask
* 특정 가상환경 선택
workon 가상환경이름 # 키 누르면 자동 완성됨
* 가상환경 종료
deactivate
* 가상환경 디렉토리로 이동
cdvirtualenv
* 현재 가상환경의 써드 파티 패키지 전체 삭제
wipeenv
* 가상환경 목록
lsvirtualenv
* 가상환경 삭제
rmvirtualenv
* 모든 가상환경에 대한 명령 실행
# allvirtualenv command with arguments
allvirtualenv pip install -U pip
===== 참조 =====
* [[http://docs.python-guide.org/en/latest/dev/virtualenvs/|Virtual Environments]]
* [[http://blog.naver.com/ez_/140138625021|VirtualEnvWrapper 사용법]]
* [[http://net.tutsplus.com/tutorials/python-tutorials/python-power-tools-virtualenv/|Python Power Tools: virtualenv]]
* [[http://net.tutsplus.com/tutorials/python-tutorials/python-power-tools-virtualenvwrapper/|Python Power Tools: virtualenvwrapper]]
* [[http://www.sitepoint.com/virtual-environments-python-made-easy/|Virtual Environments in Python Made Easy]]
* [[http://code.tutsplus.com/tutorials/python-virtual-environments--cms-26284|Python Virtual Environments]]