Moviendo entornos virtuales virtualenv
Una de las ventajas de los entornos virtuales es que los podemos recrear en cualquier máquina con muy poco coste de tiempo, siempre que tengamos los requisitos más o menos documentados es tan sencillo como lanzar un comando para volver a construirlo ¿o no?. La teoría es fantástica pero en la práctica siempre surgen - como no - problemas murphianos.
En base a una necesidad muy concreta me ha tocado mover virtualenvs de ubicación para reorganizar tanto el código como los entornos en el maltrecho disco duro de mi portátil, y por eso he creado esta pequeña muestra de script "quick and dirty" (movenv
):
#!/bin/bash
VIRTUALENV=`which virtualenv`
OLD=$1 # /absolute/path/to/old/env
NEW=$2 # /absolute/path/to/new/env
${VIRTUALENV} --relocatable ${OLD}
mv ${OLD} ${NEW}
${SED} -i -e "s#${OLD}#${NEW}#g" ${NEW}/bin/activate
Ahora sólo tenemos que ejecutarlo movenv /path/old/env /path/to/new/env
y comprobar que todo sigue en funcionando en la nueva ubicación. Ni que decir tiene que el script es una pequeña prueba de concepto, habría que añadir validación de existencia de directorios y algunas otras cosas para que fuera plenamente funcional.