Montando un entorno virtual en Python

Desde hace una época hacia aquí, la gente que me conoce sabe que estoy programando en Python. Aunque no soy programador, es cierto que si hay que meterle mano al código, pues se le mete, tampoco pasa nada. Lo más importante es divertirse con lo que haces, tanto en el ámbito laboral como personal.
Bueno, dejándonos de historias, el detalle es que tras aprender cómo funciona Python, módulos y dependencias, rápidamente me di cuenta de que programar en él estaba ensuciando mucho mi sistema. Cada nuevo módulo que instalaba, realmente quedaba colocado en el sistema, con lo que había que mantenerlo. Puesto que me gusta tener mi escritorio Linux lo más "limpio" posible, trabajando en 4 o 5 cosas diferentes de Python terminaba por tener miles de dependencias instaladas que en realidad el sistema no necesitaba para nada.
La primera solución por la que opté, y que es perfectamente válida, es el empleo de máquinas virtuales. Un VirtualBox específico para cada proyecto. Con ello consigues no ensuciar el sistema y tener todo más o menos ordenado. Así que es viable.
Sin embargo, y de casualidad,  haciendo una búsqueda de módulos Python en Debian (apt-cache al rescate!) descubrí un nuevo paquete más que interesante: python-virtualenv.
python-virtualenv monta un pequeño entorno de desarrollo Python privado a una carpeta sobre el cual instalas los módulos que desees y con los que quieras trabajar, pero sin afectar al sistema. Con ello, se acabaron las instancias de máquinas virtuales para desarrollar en Python. Simplemente creo un nuevo entorno y trabajando con easy_install o pip, instalo todos los módulos que necesite para el proyecto en cuestión. Al salir del entorno virtual, esos módulos no están presentes en el sistema. Por decirlo de cierta forma, "crea un chroot local para cada instancia Python".
Vamos a ver cómo instalarlo y trabajar con él.
  • Instalación
    La instalación del nuevo módulo se torno realmente sencilla en sistemas Debian, ya que está en el repositorio.
    shell> apt-get install python-virtualenv
    
  • Creación del nuevo proyecto
    Es necesario crear una carpeta de trabajo, a nivel local y de usuario (no es necesario ser root) para tener la "copia" de Python y trabajar con él. Para ello,
    shell> cd ~
    shell> virtualenv prueba_python
    
  • Arrancando la instancia virtual
    Dentro de la nueva carpeta, si nos fijamos, podemos ver algo que se parece a una jaula chroot, con aquellas cosas que son necesarias para Python y poco más.
    shell> cd ~/prueba_python
    shell> ls
    bin  include  lib  local
    
    Para comenzar a trabajar con ella, simplemente la activamos.
    shell> source bin/activate
    
  • Trabajando en la instancia
    Si os fijáis, la shell ya ha cambiado y ahora nos muestra que estamos en un entorno Python controlado. Desde aquí tenemos acceso al resto del sistema, pero a nivel de Python, todo lo que se instale, así como las versiones de librerías, etc. estarán en dicha carpeta.
    Si deseamos instalar un nuevo módulo,
    (prueba_python)shell> pip install module
    
    Y a continuación, podemos ya trabajar y lanzar nuestros scripts Python para probarlos.
    (prueba_python)shell> python test.py
    
  • Desactivando la instancia virtual
    Una vez terminamos de trabajar, abandonamos la consola o desactivamos el entorno con,
    (prueba_python)shell> deactivate
    
Como podéis observar, resulta muy sencillo instalar los módulos que necesitemos de esta forma y además sin ensuciar el resto del sistema, ya que todo lo referente a Python quedará bajo dicha carpeta.
Por supuesto, puedes tener cuantas instancias desees, probando diferentes módulos e incluso versiones de Python, para ver cómo afecta una versión al resultado de tu programación.

Espero que tu sistema esté a partir de ahora más limpio ;-)


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios