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

By | 2012/11/04

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

아래 링크에서 거의 대부분 참고 했습니다.
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이 하는 역활들을 해주는 녀석입니다.
각 버전별로 패키지를 따로 설정할 수 있는데요. 가상 환경 이름을 붙이기에 같은 버전이라도
얼마든지 용도에 따라 만들 수 있습니다.