Montar entorno de Desarrollo Python-Django en Ubuntu 12.04


Hace algún tiempo ya, les enseñé cómo montar un entorno de desarrollo para Ruby on Rails en Ubuntu. Hoy les enseñaré cómo montar un entorno de desarrollo para Django (WebFramework para Python) usando Ubuntu 12.04 y/o derivados también.

NOTA: Éstas instrucciones aplican para cualquier distribución linux haciendo algunos cambios y tweaks en los comandos según corresponda (más que nada en los de instalación de paquetes)

Muy bien lo que necesitaremos será lo siguiente:

1.- Python y SetupTools

El lenguaje ya viene instalado de serie en Ubuntu (y otras distros linux), so no problemo. Lo que nos faltaría checar e instalar son las setuptools. Para ésto hacemos:

sudo apt-get install python-setuptools

2.- Pip

Pip es un "gestor de paquetes" para instalar módulos de Python en tu computadora. Piensa en él como el gestor de las gemas que hay para el lenguaje ruby pero en éste caso se trata de python. Para instalarlo hacemos:

1. sudo su
2. sudo apt-get install curl
3. sudo curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
4. exit

3.- Django

Django es un WebFramework para Python. Digamos que Rails es a Ruby lo que Django es a Python. Para instalarlo corremos:

1. sudo apt-get install python-django
2. sudo easy_install Django
3. sudo mv /usr/bin/django-admin /usr/bin/django-admin.py

4.- Bases de Datos

Si vas a trabajar con un WebFramework como en éste caso Django, es obvio que realizarás proyectos que requieren manipulación de bases de datos. Puedes usar los bindings que mejor se te acomoden, para la base de datos que prefieras. Sin embargo, de serie, es recomendable que instales en tu sistema el soporte para las tradicionales MySQL y SQLite cuando te estés montando un entorno de desarrollo Django, ya que sirven muy bien para los test servers. Para hacer ésto corremos:

1. sudo apt-get install mysql-client mysql-server mysql-common python-mysqldb
2. sudo apt-get install libmysqlclient18 python-dev libmysqlclient-dev
3. sudo apt-get install python-sqlite python-pysqlite2 sqlite sqlite3

También, si te gusta usar MongoDB (y ya la instalaste en tu sistema) puedes hacer que funcione y se integre con Python y Django instalando los siguientes paquetes:

sudo apt-get install python-mongoengine python-bson python-gridfs python-pymongo

5.- Ninja-IDE

Ninja-IDE es a mi parecer el mejor IDE para Python existente actualmente, se los recomiendo bastante. Para instalarlo en nuestro ubuntu haremos en terminal:

1. sudo apt-add-repository ppa:ninja-ide-developers/ninja-ide
2. sudo apt-get update
3. sudo apt-get install ninja-ide

Finalizando...

Ahora sólo queda hacer las carpetas de nuestro entorno de desarrollo. Les recomiendo seguir una jerarquía específica, de manera que dentro de nuestra carpeta personal tengamos una carpeta especial para el código, dentro de ella carpetas para cada uno de los lenguajes que manejemos y dentro de éstas carpetas organizadas por frameworks/proyectos donde organizaremos nuestro código. Algo así como:

home => usuario => code => python/ruby => frameworks => django/rails 

Esto quiere decir que dentro de tu carpeta Home tendrías una carpeta llamada code que adentro tendría carpetas según los lenguajes que manejes (en éste caso python y ruby) y dentro de c/u de éstas tendrías una carpeta llamada frameworks donde tendrías una carpeta por cada framework que utilices, (django para python y rails para ruby en éste caso) donde dentro de éstas últimas guardarías/generarías c/u de los proyectos creados con el framework de tu preferencia. Es importante mencionar que en las carpetas específicas de cada lenguaje (python/ruby en éste caso) guardarías todos los proyectos individuales (aquellos que no tienen que ver con frameworks por ejemplo) también con una subcarpeta según su nombre...

Para crear un nuevo projecto de Django, correríamos:

cd carpeta/donde/guardaremos/proyecto
django-admin.py startproject proyecto

*Donde "proyecto" equivale al nombre del proyecto que crearemos y la carpeta donde lo guardaríamos  sería (según nuestro ejemplo de jerarquías) "home/usuario/code/python/frameworks/django".

A lo mejor les parece meticuloso y éso de la jerarquía de carpetas que menciono no tienen porqué hacerlo en realidad, cada quién se puede organizar como mejor le convenga; Lo que sí les comento es que al momento de trabajar seguido con proyectos informáticos es importante llevar un orden para no estar perdiendo código y mordiéndonos las uñas después, sobretodo con un framework como django donde el código de las features implementadas por proyecto es reutilizable ;)

Éso es todo! espero les haya gustado el post.

P.D. Existen otros Frameworks

Además de Django, existen otros frameworks para trabajar con Python tales como Web2Py (Framework bastante poderoso y genial también que se descarga y se corre automáticamente desde un ejecutable) o bien, otros como bottle, para instalar Bottle (por ejemplo) en ubuntu (un framework pequeño pero recomendable también) correremos el siguiente comando en terminal:

sudo apt-get install python-bottle

¡Happy developing!