장고 스터디 환경 python2,python3, pip virtualenv pyenv 등등등

virtualenv 만 쓸 수도 있다. http://tech.jinto.pe.kr/339 도 보시길.


오랜만에 장고쪽을 들여다보니, 파이썬3랑 파이썬2랑 섞여서 환경설정이 힘들었다. 그냥 파이썬3로 가면 속편하겠지만, 맥의 시스템에는 파이썬2가 설치되어있고, 함부로 삭제하면 안될것 같다.

게다가 오랜만에 장고를 다시 공부할 생각으로 검색하니 첫페이지에 나오는 한글 문서는 장고1.4에 맞춰져있다. 또 이녀석은 파이썬3을 지원하지 않는다.

https://django-document-korean.readthedocs.org/en/old_master/intro/tutorial01.html

하지만, 만약에 어딘가에 납품하면서, “장고 버전은 좀 옛날꺼… 1.4예요” 라고 할수는 없으니…. 좀 복잡하네. 레일즈나 장고나.

pyenv

일단 파이썬 버전간 스위칭을 위해서 pyenv 를 설치했다. 루비의 rbenv 와 비슷하고 별생각없이 스위칭할 수 있어 좋았다. 참고

curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

설치하고 나면 .bash_profile 에 아래 내용을 추가해야한다. 실행후에 안내문에 출력되니까, 그대로 복사하면 된다. (이것은 brew로 안하고 curl로 했다.)

export PUENV_ROOT="${HOME}/.pyenv"

if [ -d "${PYENV_ROOT}" ]; then
    export PATH="${PYENV_ROOT}/bin:${PATH}"
    evel "$(pyenv init -)"
fi
source ~/.bash_profile
pyenv install 3.4.2 # 최신버전 설치

virtualenv

버전만 설정하는 것으로는 부족하다. 예를들어 장고 버전을 달리해가며 배포/개발 해야 한다면 site-package도 문제가 된다. 이쪽을 관리해주는 녀석이 virtualenv. 파이썬3.4에서는 pyvenv 라는 녀석을 쓰는듯한데, pyenv 의 플러그인을 동원하면 버전에 따라 적당한 것으로 실행해준다. 앞의 방식으로 설치했다면 플러그인은 이미 설치되어있다. 참고

파이썬2 + 장고1.4를 공부하려면

pyenv shell system # 시스템 설치된 버전으로 지정
pyenv virtualenv py27
peen activate py27
pip install django==1.4
django-admin.py startproject djangotest2
cd djangotest2
pip freeze > requirements.txt # 이 requirements.txt 는 나중에 pip install requirement.txt 할수있다.

파이썬3+장고1.7로 설치하려면

pyenv shell 3.4.2
pyenv virtualenv myproj
pyenv activate myproj
pip install django
django-admin startproject myproj

이렇게 하면 여러개의 파이썬 버전과 장고버전으로 작업할 수 있다.