Un elemento que nos será de gran utilidad para desarrollar en Django es Virtualenv. Virtualenv nos permite liberar las dependencias python de nuestro proyecto Django de los recursos que tenemos en nuestro sistema. Esto nos permite trabajar, por ejemplo, con la versión Django 1.7, mientas que en el sistema tenemos instalado django 1.6.
Además, facilita la migración del proyecto de una máquina a otra, al mantener todo el registro de las dependencias instaladas y proporcionar un comando para descargarse dichas dependencias en caso de no tenerlas.
Instalando Django con VirtualEnv
Para montar el entorno, en primer lugar necesitaré instalar virtualenv, para lo que necesito la herramienta pip (Python Package Index).
Suponiendo que partimos de un Debian (en ubuntu e incluso OSX debería ser similar) recién instalado, por lo que para instalar pip, deberemos instalar antes otra herramienta de Python denominada easy_install (ver más info):
miusuario$ sudo apt-get update
miusuario$ sudo apt-get install build-essential python-dev python-setuptools
miusuario$ sudo easy_install pip
miusuario$ sudo pip install –upgrade pip
miusuario$ sudo pip install virtualenv
Otra herramienta que podemos instalar, que simplifica los comandos de virtualenv, es el virtualenvwrapper, pero de momento nos centraremos en usar virtualenv.
miusuario$ virtualenv mientorno
Nos creará una carpeta con una estructura similar a la carpeta de sistema /usr/
miusuario$ cd mientorno
Activamos el entorno virtual. Mientras esté activo, todo lo que instalemos con pip, afectará únicamente a éste entorno de trabajo.
miusuario$ source bin/activate
Instalamos Django. Recordemos que sólo estará disponible para este entorno virtual. Si no especificamos la versión, nos instalará la versión estable más actual.
(mientorno)$ pip install django
Primer proyecto en Django
(mientorno)$ django-admin.py startproject miproyecto
Dentro del proyecto de Django creado, está el script manage.py, que nos permitirá realizar distintas acciones sobre nuestro proyecto, como por ejemplo lanzar el servidor de desarrollo o sincronizar la base de datos. Por comodidad cambiaremos su permiso para que sea ejecutable.
(mientorno)$ cd miproyecto
(mientorno)$ chmod +x manage.py
(mientorno)$ ./manage.py runserver
Otras utilidades que interesa instalar
- South
- Django-registration
- Stripe
(mientorno)$ pip install south django-registration stripe