파이썬 가상 환경 설정 및 장고 설치하기

[markdown]
갑자기 회사의 동료가 나에게 장고스터디를 해달라고 했다. 마침 장고를 보고있었던 나는 쥐뿔도 모르지만, 이제부터 준비하려고 장고를 열심히 보고 있다.  근데, 나쁜버릇이 나와서 설치부터 잘하고 싶은 마음이 드는 것이다.

남들은 그냥 `sudo pip install django` 이렇게 하고 넘어갔을 것을 괜시리 깔끔떨며 가상환경이라는 것을 만들어보기로 한다. 그럼 같이 한삽을 같이 퍼보도록 하자.

아래에서 실행한 스크립트들은 **virtualbox에 새로 설치한 ubuntu14.04 LTS**에서 아주 깔끔한 상태로 실행한 것들이다.  다른 Linux에서는 설치하는게 비슷하거나 약간 다를것이고, windows에서는 아~~주 많이 다를것이다. 그러므로 그점을 인지하고 보도록 하자.

사실 OSX는 예전에 정리해놓은 글이 있다. 똑같은걸 두번이나..적다니..ㅠㅠ

[맥에서 쟝고개발환경 만들기](http://gyus.me/?p=240)

###우분투에서 python3 설치
`sudo apt-get install python3-all`

###pip 설치
`sudo apt-get install python-pip `

###virtualenv 설치
virtualenv를 설치하는 이유는 여러가지가 있지만, 내가 아는 바로는 아래 4가지다.

– 파이썬 패키지를 설치할 때 관리자 권한이 아니라 유저 권한으로 설치 하고 싶음.
– 파이썬의 실행 환경을 리눅스의 것과 온전히 구분해서 서버를 깔끔하게 하고 싶음.
– python3을 실행할 때 그냥 python으로 실행하고 싶음.
– 개발환경과 실서버환경을 동일하게 맞추고 싶음.

그럼 설치해보자. (간단간단)

`sudo pip install virtualenv`

###virtualenvwrapper 설치
뭘 이런 헷갈리는걸 또 설치하냐고 물어볼 사람이 있을 것 같은데(나도 그랬음), 그냥 세트라고 생각하고 설치하는게 좋다. virtualenv를 훨씬 사용하기 간편하게 해준다.

`sudo pip install virtualenvwrapper`

###virtualenv 환경 설정
1. 디폴트 디렉토리 만들기 .virtualenv
mkdir ~/.virtualenvs
2. WORKON_HOME 환경 변수에 디폴트 디렉토리 등록하기
export WORKON_HOME=~/.virtualenvs
3. .profile(우분투 기준 유저 로그인시 실행되는 스크립트) 에 virtualenvwrapper를 임포트 하도록
위 파일의 가장 하단에 아래 스크립트 추가

`. /usr/local/bin/virtualenvwrapper.sh`
혹은
`source /usr/local/bin/virtualenvwrapper.sh`

###가상환경 만들어보기

위의 과정을 잘 따라했다면 `virtualenvwrapper.sh` 내에 있는 함수인 `mkvirtualenv` 함수를 사용할 수 있다.

`mkvirtualenv {{가상환경-이름}}`
요렇게 사용한다

`mkvirtualenv py2`

요렇게하면 py2라는 이름의 가상환경이 설치되고 그 가상환경을 사용할 수 있게(workon) 된다.

`which python`
명령어를 실행했을 때 아래와 같은 경로로 나오면 제대로 된것이다.
`/home/user_name/.virtualenvs/py2/bin/python`

가상환경에서 나가려면
`$ deactivate`
와 같이 실행한다

다시 들어가려면
`$ workon py2`
라고 하면된다.

###그럼 python3의 가상환경을 만들고 싶으면?

`virtualenv`가 인식하는 환경변수중에 `VIRTUALENV_PYTHON` 이라는 환경변수가 있는데, 저 변수에 `python3`의 경로를 넣어 주면 된다.

이렇게 해보자.
“`
export VIRTUALENV_PYTHON=`which python3`
mkvirtualenv py3
“`

이렇게 하면 환경변수 안쓰고도 된다!(이진석님 감사합니다.)
“`
mkvirtualenv py3 –python=`which python3`
“`
물론 위의 `which python3`이 제대로 되려면 `python3`이 설치가 되어있어야 한다.
(`sudo apt-get install python3-all`을 위에서 실행한 이유가 그것 때문)

이렇게 하면 파이썬3의 환경으로 가상환경이 만들어졌다.
파이썬 버젼을 확인해보자.
`(py3) ~ $ python -V `
`Python 3.4.0`

요런식으로 나오면 성공~!
긜고 pip3도 pip 로 실행된다.

####아..이제 환경설정이 됐으니 장고를 설치할 수 있다…;;;

### 장고설치
쟝고의 설치는 허무하게도 아래의 한줄

`pip install django`

장고 설치끝~
[/markdown]

맥에서 쟝고개발환경 만들기 (Django, pip, virtualenv and homebrew)

이번에 맥북을 사면서 파이썬 개발환경을 구축했습니다.
구축하는 중에 정리한 내용을 공유합니다.

아래 링크에서 거의 대부분 참고 했습니다.
http://www.tlswebsolutions.com/mac-os-x-lion-setting-up-django-pip-virtualenv-and-homebrew/
따라하는 겸 저도 따로 정리했습니다.(대부분 비슷한데 약간 다릅니다.)
위 링크에는 xcode대신에 gcc를 설치하는데요, 저는 xcode가 설치된 상태였기에 gcc를 설치하지 않았습니다.
xcode를 설치하지 않으신 분들중에 제대로 안되시는 분들은 알려주시면 감사드리겠습니다~

업데이트가 필요해진 부분들도 새로 정리했으니 영어가 귀찮은신분들은 참고하시면 좋을것 같아요.
설치하게 될 라이브러리, 프레임웤은 아래와 같습니다.

  • Pyhon2.7
  • Django1.3
  • Git
  • Homebrew > 맥 OSX의 패키지 관리자
  • xcode Command Line Tools
  • Pip -> package install for python
  • PIL -> python imaging library
  • Virtualenv -> 파이썬의 버추얼 환경을 위한 프로그램

homebrew 설치하기

homebrew설치는 아래 사이트에서 확인가능하십니다.
http://mxcl.github.com/homebrew/

아래와 같이 쉡에 입력하시면 homebrew의 설치는 끝납니다.
매우 간단하죠? ^^

$ ruby -e “$(curl -fsSkL raw.github.com/mxcl/homebrew/go)”

설치중 아래와 같은 경고가 떠서
Warning: Install the “Command Line Tools for Xcode”: http://connect.apple.com

애플 디벨로퍼 사이트에 가서 Command Line Tools 를 다운로드 받았습니다.  (용량이 110메가!)

https://developer.apple.com/downloads/index.action

다운로드 하는 동안 brew가 잘 되는지 확인 해보죠.

아래와 같이 입력합니다.

$ brew

터미널에 사용법이 찍혀 나온다면 성공한것입니다.

git인스톨하기

이제 본젹적으로 brew를 이용해서 인스톨을 해보아요.
먼저 git을 설치해보겠습니다.

$ brew install git

인스톨하는데 아래와 같은 에러가 떳습니다.

Warning: You have not agreed to the Xcode license.

xcode를 한번도 실행하지 않아서 뜨는 에러인것 같아서
xcode를 실행하니 라이센스에 동의하라고 나옴니다.
이거구나 싶군요!
‘동의’를 누르니 개발자 툴 다운받을래? 라고 뜹니다.
받는다고 설정하고 다운로드를 완료했습니다.
xcode설정하는 중에 git도 설치가 완료 됐군요!

git도 테스트 해보겠습니다.

$ git help

해서 사용법이 주르륵~~ 나오면 잘 되는 것입니다.

이제 파이썬을 설치해 봅시다.
아래 커맨드는 파이썬에서 필요한 라이브러리들을 설치하는 커맨드입니다.

$ brew install readline sqlite gdbm

이제 파이썬을 설치해보아요.

$ brew install python –universal –framework

–universal과 –framework 옵션은 제가 대충만 찾아봐서 확실히 알지는 못하오니 궁금하시다면,

homebrew python formula로 구글에서 검색해보시길 바랍니다.

그 와중에 xcode Command Line Tools의 다운로드가 끝났네요.

xcode Command Line Tools를 설치해보죠~

xcode Command Line Tools를 설치

다운로드 받으신 파일(아래와 같은 파일이요.)을 더블클릭하시면 창이뜹니다.

그리고, 아래와 같은 화면에서 ‘계속’등등을 누르셔서 그저 다음으로 넘어가시기만 하면 됩니다.

너무 간단하네요. ^^;

이제 파이썬의 패키지 관리를 해야하니 pip를 설치해봐요.

$ easy_install pip

실행중에 에러가 났습니다. 권한이 없다고 나오는군요.
[Errno 13] Permission denied: ‘/Library/Python/2.7/site-packages/test-easy-install-42582.write-test’

관리자 권한으로 실행을 해야될 것 같네요.
관리자 권한을 활성화 시키는 법은 아래 링크를 참고하세요~

http://support.apple.com/kb/HT1528?viewlocale=ko_KR&locale=ko_KR 

관리자 권한을 활성화 시키셨으면 다시 pip를 설치해봅시다.

관리자 권한으로 실행가능하도록 sudo를 사용하겠습니다.

$ sudo easy_install pip

이제 pip로 파이썬의 패키지들을 인스톨 할 수 있습니다.
python가상환경을 만들어주는 virtualenv를 설치해봐요.

virtualenv설치

Virtualenv는 파이썬 개발에 필요한 환경을 맥 머신에 기본 설치되어 있는
파이썬 환경과는 별도의 환경으로 완전히 구별하고 싶을때 사용합니다. (영어로는 고립시킨다고 되어있네요.)

아래 명령을 실행시켜 봅시다.(역시 관리자 권한이 필요합니다. ㅎ)

$ sudo pip install virtualenv

자, 이제 장고를 실행시키기위한 환경을 구축해봐요.

프로젝트의 루트로 사용할 디렉토리를 하나 만드셔야 됩니다.

$ mkdir directory_name

$ cd directory_name

그리고 새로운 버추얼 환경을 만들어 봅시다.

$ virtualenv [버추얼환경 이름] –no-site-packages

아래 커맨드로 새로운 버추얼 환경을 실행할 수 있습니다.

$ source [버추얼환경 이름]/bin/activate

이렇게 하시면 터미널의 앞에 버추얼 환경의 이름이 나오게 됩니다.

저는 django라고 이름을 지었는데요, 이런식으로 나옵니다.

(django) user $ _

버추얼 환경에서 나오시려면 아래의 커맨드를 입력하세요.

$ deactivate

마지막으로 쟝고를 설치해보겠습니다~

$ pip install django

이제 쟝고개발환경이 다 준비되었습니다! 와우!

만약에 MySQL을 지원하고 싶으시다면 MySQL서버와 MySQL-python라이브러리를 설치해야해요.

아래의 명령어로 간단히 가능합니다. (brew를 실행해야하니 버추얼 환경에서 나와주세요.)

brew install mysql

#아래 두줄은 붙여서 써주세요~
sudo pip install http://downloads.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz?use_mirror=cdnetworks-us-2

PIL이라는 파이썬 이미지 라이브러리도 설치해봅시다.

pip install PIL

이제 필요한 것은 다 준비 되었습니다.

쟝고프로젝트를 개발하실 수 있습니다.

버추얼 환경으로 설치했기에 기존의 맥 환경에는 전혀 영향을 주지 않습니다~!

이제 쟝고 프로젝트를 시작하는 것만 남았군요!

버추얼 환경으로 들어가셔서 쟝고 프로젝트를 생성하는데 까지 해보겠습니다.

source django/bin/activate

쟝고 프로젝트를 생성하는 커맨드는 아래와 같습니다.

django-admin.py startproject project_name

project_name에는 여러분이 만드실 프로젝트명을 넣으세요~ ^^

아..그리고 한가지 빼먹게 있습니다만, mysql설정인데요.

mysql설정은 따로 해주셔야됩니다. 다른 좋은 분들의 링크만 소개하겠습니다.
(저는 공식사이트가 젤 낫긴 하더라구요.)

그럼 재미나는 프로그래밍 하시길 바랍니다. ^^

http://dev.mysql.com/doc/refman/5.6/en/binary-installation.html

http://calflove.tistory.com/334

http://bluexmas.tistory.com/216

덧, 버추얼 환경이라고 하니 용어가 조금 헷갈립니다만,
nodejs나 루비를 아시는 분들이라면 nodejs의 nvm 이나 ruby의 rvm을 생각하시면 좀 더 이해하기 쉬울것 같습니다.
virtualenv는 nvm또는 rvm이 하는 역활들을 해주는 녀석입니다.
각 버전별로 패키지를 따로 설정할 수 있는데요. 가상 환경 이름을 붙이기에 같은 버전이라도
얼마든지 용도에 따라 만들 수 있습니다.