본문 바로가기

Language/Django

[Django] Django 설치하기 - How to install Django (참고:djangoproject)

[Django] Django 설치하기 - How to install Django



※ 아래 내용은 [djangoproject]https://docs.djangoproject.com/en/1.9/topics/install/의 일부를 번역한 것입니다.

(오역에 대해서는 메일 부탁드립니다. :) )


Python 설치하기

Being a Python Web framework, Django requires Python. 자세한 내용은 What Python version can I use with Django? 을 확인하시기 바랍니다.

Python의 최신버전은 https://www.python.org/download/ 에서 다운받으시거나 지금 사용하고 계시는 OS의 package manger에서 다운하시기 바랍니다.

Jython에서의 Django

만약 Jython(JAVA platform에서 사용하는 Python)을 사용하고 있다면, 추가적으로 수행해야하는 것들이 있습니다. 자세한 내용은 Running Django on Python 을 확인하시기 바랍니다.

Windows에서의 Python

Windows에서 Django를 사용하려고 하신다면, How to install Django on Windows 에서 유용한 정보를 얻으실 수 있습니다.

Apache와 mod_wsgi 설치하기

Django를 단순히 사용 시도(experiment)만 하는 것이라면 다음 섹션으로 넘어가시기 바랍니다.Django는 테스트할 수 있는 가벼운(lightweight) 웹 서버를 포함하고 있기 때문에 production에 Django를 사용하기 전에 추가적으로 Apache를 설치할 필요가 없습니다.

Django를 상용 사이트에서 사용하고 싶다면, mod_wsgi가 포함되어 있는 Apache 를 사용하면 됩니다. mod_wsgi는 임베디드 모드(embedded mode)와 데몬 모드(daemon mode)에서 동작합니다.(2개 중 1개를 선택하여 사용하면됨) 임베디드 모드에서의 mod_wsgi는 mod_perl와 비슷합니다. mod_wsgi는 Apache에 Python을 넣은(embed) 것이며, 서버 부팅시 메모리에 Python 코드를 로드 한다. 코드는 서버 구성에 필요한 성능을 향상 시키는 Apache 프로세스 과정 동안 내내 메모리에 유지된다. daemon 모드의 경우, mod_wsgi에 요청을 처리하는 독립적인 프로세스를 생성합니다. daemon 프로세스는 웹서버가 아닌 다른 사용자로 실행할 수 있으며,  Apache 웹서버의 재부팅 없이 daemon 프로세스를 재시작 할 수 있습니다. mod_wsgi 문서를 참고하여 설정에 맞는 모드를 결정할 수 있습니다. Apache가 설치되어 있는 것과 mod_wsgi 모듈이 실행되고 있는 것을 확인하도록 해야합니다. Django는 mod_wsgi를 지원하는 모든 Apache버전을 지원할 것입니다.

How to use Django with mod_wsgi에서 설치된 mod_wsgi 설정하는 방법을 확인할 수 있습니다.

어떤 이유에서든 mod_wsgi를 사용할 수 없는 경우, 다른 방법을 이용할 수 있습니다. uWSGI의 경우 nginx를 이용하면 됩니다. 또한 DJango는 다양한 서버 플랫폼에서 실행할 수 있는 WSGI spec (PEP 3333)를 지원합니다. 

DB 실행시키기

Django 데이터베이스 API 기능을 사용하려 한다면, 데이터베이스 서버가 실행되는지 확인해야 합니다. Django는 다양한 데이터베이스 서버를 지원하며, 공식적으로  PostgreSQLMySQLOracleSQLite 를 지원하고 있습니다.

간단한 프로젝트나 상용화하지 않을 개발을 할 것이라면, SQLite는 일반적으로 별도의 서버를 실행 없이도 할 수 있는 가장 간단한 방법입니다.하지만, SQLite는 다른 데이터베이스와 다른점들이 많으므로, 만약 실질적으로 무언가를 작업하고 있다면 향후에 실제로 사용할 데이터베이스와 동일한 데이터베이스로 개발하는 것을 추천합니다. 

이 외에도 공식적으로 지원되고 있는 데이터베이스로 backends provided by 3rd parties가 있다.

또한 데이터베이스 backend에서는 Python 데이터베이스 바인딩(binding)이 설치가 되어 있는지 확인해야 합니다.

  • PostgreSQL를 사용할 것이라면,psycopg2 패키지를 사용해야합니다. 자세한 내용은 PostgreSQL notes 를 참고하시기 바랍니다.
  • MySQL를 사용할 것이라면, mysqlclient 같은 DB API driver를 사용해야 합니다. 자세한 내용은 notes for the MySQL backend를 참고하시기 바랍니다.
  • SQLite를 사용할 것이라면, SQLite backend notes를 참고하시기 바랍니다.
  • Oracle을 사용할 것이라면, cx_Oracle을 복사(copy)해야하며 자세한 내용은 notes for the Oracle backend에서 old 버전의 Oracle과 cx_Oracle. 관련된 내용을 참고하시기 바랍니다.
  • 비공식적인 3rd party backend를 사용할 것이라면, 추가  요구사항이 작성되어 있는 문서를 참고하시기 바랍니다.

(처음 Django 설치와 프로젝트 생성 이후)모델을 위해 자동으로 데이터베이스의 테이블을 생성해주는 Django의 manage.py migrate 명령어를 사용할 것이라면, Django가 사용하고 있는 데이터베이스의 테이블을 생성 및 변경 권한을 가지고 있는지 확인해야합니다. 예를들어 테이블을 생성해야하는 경우, Django에게  SELECTINSERTUPDATEDELETE 권한을 부여해야합니다. 해당 권한들을 이용하여 데이터베이스 사용자들을 생성 한 후에는 프로젝트의 설정 파일의 세부사항을 지정해야합니다. 자세한 내용은 DATABASES를 참고하시기 바랍니다.

Django의 데이터베이스 query를 테스트하기 위해 testing framework를 사용하는 경우, Django에게 테스트용 데이터베이스를 생성할 권한을 부여하도록 해야합니다.

Old 버전의 Django 제거하기

설치된 Django를 새로운 버전으로 업그레이드 하려면, 새로운 버전의 Django를 설치하기 전에 현재 설치된 Django를 삭제해야 한다.

이전에 Django를 pip 또는 easy_install를 이용하여 설치하였다면, 별도로 old 버전의 Django를 제거를 하지 않아도 됩니다. (pip 또는 easy_install 를 이용한 설치는 old 버전의 Django를 자동으로 처리함)

이전에 Django를 python setup.py install를 설치하였다면, Python site-packages의 django 폴더를 제거하는 것 만큼 간단합니다. 제거해야하는 폴더를 찾기 위해서는 다음 쉘 명령을 수행해야합니다. (not the interactive Python prompt):

$ python -c "import django; print(django.__path__)"

Django 코드 설치하기

Distribution-specific 패키지를 설치하거나, 최신 공식 릴리즈(Latest official Release)를 다운하거나, 최신 개발 버전(Latest Development version)을 패치(fetch)하는 것에 따라서 설치 설명서가 조금씩 다를 수 있습니다.

pip를 이용하여 Official Release 설치하기

다음은 추천하는 Django 방법입니다.

  1. pip를 설치합니다. 가장 쉬운 방법은 standalone pip installer를 사용하는 것입니다. Distribution에 이미 설치된 pip가 있는 경우, 버전을 확인하여 구버전인 경우 업데이트를 하도록 합니다. pip가구버전인 경우, 설치가 제대로 되지 않을 수도 있습니다.
  2. virtualenv와 virtualenvwrapper를 확인하시기 바랍니다. 해당 툴들은 전체 시스템에 설치하는 패키지보다 더 유용한 분리된(isolated) Python 환경을 제공합니다. 또한 해당 툴들은 administrator 권한 없이 패키지를 설치할 수 있도록 합니다. Python 3에서 virtualenv를 생성하는 방법은 contributing tutorial에서 안내하고 있습니다.
  3. 가상환경을 생성하고 실행한 후에는 쉘(shell prompt)에서 pip install Django 명령어를 입력합니다.

Distribution-specific 패키지 설치하기

사용하고 있는 platform/distribution에서 공식적인 Django 패키지/설치(installer)를 제공하고 있다면, distribution specific notes 를 참고하시기 바랍니다. Distribution-provided package will typically allow for automatic installation of dependencies and easy upgrade paths; however, these packages will rarely contain the latest release of Django.

Development version 설치하기

Django 개발 추적하기

Django의 최신 개발 버전을 사용하기로 결정한다면, the development timeline을 주의해야 하며 release notes for the upcoming release를 자세히 확인해야합니다. 해당 내용은 Django의 Copy를 업데이트 등과 같은 경우에 도움이 될 것입니다. (안정적인 릴리즈(stable release)를 위해 필요한 변경 내용은 릴리즈 노트에 설명되어 있습니다.)

최신 버그 수정 및 개선을 위해 Django 코드를 업데이트를 하게 된다면 다음 설명대로 하시기 바랍니다.

  1. Git이 설치되어 있는 것을 확인하여 쉘에서 명령어를 수행할 수 있는지 확인합니다. 

    (쉘의 git help 명령어로 테스트할 수 있습니다.)

  2. Django의 main development branch를 다음과 같이 Checkout합니다.

    (=> Django의 git을 가져올 수 있음)

    $ git clone git://github.com/django/django.git
    

    위 명령어는 최근 폴더에 django 라는 이름의 폴더를 생성합니다.

  3. Python 인터프리터를 이용하여 Django의 코드를 로드할 수 있는지 확인합니다. virtualenvvirtualenvwrapper와 pip를 이용하여 쉽게 확인할 수 있습니다. contributing tutorial에서 Python 3에서 virtualenv를 생성하는 방법을 안내하고 있습니다.

  4. virtualenv를 설치 및 실행한 후, 다음 명령어를 실행합니다.

    $ pip install -e django/
    

    위 명령어를 통해 Django의 코드를 가져올 수 있도록 하며, django-admin 유틸리티 명령어를 사용 가능하게 됩니다. 이제 모든 설정이 완료되었습니다!

Django 소스코드의 복사본(copy)를 수정할 때, django 폴더 내에서 git pull 명령어를 실행하면 됩니다.