Redistribución

En este bloque se tratan los casos de estudio relacionados con la redistribución del software y las diferentes formas de hacerlo:

  • Sistemas de control de versiones y correcto uso.
  • Creación de paquetes.
  • Inclusión en repositorios públicos.
  • Creación de binarios.
  • Portabilidad entre sistemas.

RD-001 - Inclusión de dependencias externas

Problema

Mi proyecto tiene dependencias y no se cómo hacer que sean fácilmente instalables para que se puede redistribuirlos de forma sencilla.

Solución

Usar pip + el fichero requirements.txt.

  • Pip es un gestor de paquetes Python, al más puro estilo “apt-get” de Debian.
  • requirements.txt: Fichero donde se detallan todas las dependencias del proyecto.

Cómo

En este link se puede encontrar el ejemplo: Ejemplo requirements.txt

Para instalar todas las dependencias usando pip:

pip -r requirements.txt

RD-002 - Sandbox y entornos virtuales

Problema

Las dependencias entre proyectos y tener que instalarlo todo en el sistema lo “ensucia” y hace que todo sea un caos.

Solución

Usar virtualenv:

  • Virtualenv: es una “sandbox” donde se instalarán todas las dependencias de tu software.
  • Además, podemos usar virtualenvwrapper, para añadir más funcionalidad y utilidades a virtualenv.

Cómo

Instalar virtualenwrapper

Nota

Virtualenvwrapper incluye el paquete “virtualenv”

pip install virtualenvwrapper

Crear un virtualenv

mkvirtualenv tutorial

Crear un virtualenv temporal

mktmpenv tutorial_tmp

Salir del virtualenv

deactivate