Django: Instalación de un entorno de desarrollo paso a paso

PASO 1: Instalación de python

Instalandolo desde el gestor de paquetes

sudo apt-get install python python-dev

O compilando nuestro python.

Instalamos las dependencias necesarias para compilar un programa

sudo apt-get install build-essential
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
Descargamos y compilamos el python que queremos:
cd ~/Downloads/
wget http://python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -xvf Python-2.7.9.tgz
cd Python-2.7.9
./configure
make
sudo make altinstall
## Instalación de pip En caso de no tener disponible pip deberemos instalarlos: #### Desde gestor de paquetes
apt-get install python-setuptools
#### Última versión
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -o - | python
## INCISO: Instalación de python si tenemos uno ya instalado, o como cambiar de python fácilmente. En caso de tener un python (muy) antiguo en nuestro sistema y tener que instalar más nuevo podemos usar [pyenv](https://pypi.python.org/pypi/pyenv). Para instalar pyenv:
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

pip install --egg pyenv
La primera vez tendremos que configurar pyenv:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

Para instalar otro python

pyenv install VERSION_OF_PYTHON
pyenv rehash


pyenv install 2.7.9
pyenv rehash
Para usar el python que acabamos de instalar:
pyenv local VERSION_OF_PYTHON
pythonbrew use 2.7.9
Para dejar de usar el python instalado y volver a la configuración normal:
pyenv local system

PASO 3 Instalación de virtual env (solo una vez)

Los paquetes (o huevos) python se instalan a nivel de sistema operativo. Un virtualenv es un entorno virtual:  los usaremos para utilizar versiones de python independientes y no andar cambiando de versión en el sistema

Hay muchos motivos por los que usar un virtualenv, por ejemplo si estamos desarrollando varios proyectos python en uno utilicemos una versión de un paquete python y en otros utilicemos otra versión. Virtualenv es una solución elegante que no nos hace depender de las versiones que tengamos instaladas en el sistema operativo. Lo suyo es instalar en el entorno virtual las versiones que vamos a tener instaladas en el servidor de producción.

pip install virtualenv

Creación de un entorno virtual

virtualenv NOMBRE_DEL_DIRECTORIO #virtualenv creará el directorio

Activación y desactivación del entorno virtual

Para activar:

source NOMBRE_DEL_DIRECTORIO/bin/activate

Para instalar un paquete en dicho entorno, tras activarlo, no hay que hacer nada especial (pip install NOMBRE_DEL_PAQUETE)

Para desactivarlo:

deactivate
### PASO 4: Instalación de Django [Guía oficial de instalación de Django](https://docs.djangoproject.com/en/dev/topics/install/)
virtualenv vnewspaper
source vnewspaper/bin/activate
pip install Pillow==1.7.8 # python 2
pip install Pillow==2.9. # python 3
pip install Django==1.8.2

Django depende de PIL (o Pillow es un fork de este). Propongo que usemos Pillow solamente bansandome en que es mucho más sencillo de instalar.

Comandos Django

Creación de un proyecto

django-admin.py startproject foo

Paso 5: añadir a un repositorio en GitHub/GitLab/Bitbucket…

cd existing_folder
git init
git remote add origin https://gitlab.com/sperea/foo.git
git add .
git commit
git push -u origin master