Mostrando entradas con la etiqueta aislado. Mostrar todas las entradas
Mostrando entradas con la etiqueta aislado. Mostrar todas las entradas

sábado, 23 de noviembre de 2013

Virtualenv II, yendo más allá con virtualenvwrapper


En una entrada anterior vimos algo de Virtualenv, ahora vamos a ver cómo usar una herramienta que facilita un tanto su uso, Virtualenvwraper.

¿Qué es Virtualenvwrapper?
Virtualenvwrapper es un conjunto de herramientas para extender Virtualenv. Éstas herramientas incluyen wrappers o contenedores para la creación y eliminación de entornos virtuales y la gestión del flujo de trabajo para desarrollo, facilitando trabajar en más de un proyecto a la vez sin generar conflictos entre dependencias.

Características de Virtualenvwrapper
  • Organiza todos sus entornos virtuales en un solo lugar.
  • Wrappers para la gestión de sus entornos virtuales (crear, borrar, copiar).
  • Facilita cambiar entre entornos con un solo comando.
  • Implementa el uso de la tecla de tabulación (tab) para los argumentos de las ordenes de los entornos virtuales (no válido para el CMD de Windows, para esto es necesario tener una shell Cygwin).
  • Posibilidad para que el usuario cree hooks (ganchos) en todas las operaciones para ejecutar acciones propias. 
  • Sistema de plug-ins para la creación de extensiones.
Instalación
Luego de tener instalado Virtualenv instalamos Virtualenvwrapper mediante la orden
easy_install virtualenvwrapper
o
pip install virtualenvwrapper
Luego de esto es necesario configurarlo, para esto debemos seleccionar la carpeta en la cual quedarán almacenados los entornos, para este caso la carpeta de entornos quedará en el directorio del usuaio y se llamará .entornos (Para los sistemas *nix el punto al principio oculta los entornos) .  Entonces debemos establecer una variable al sistema (para Windows también es necesario agregar una ruta al path del sistema), esto se hace así:

Para sistemas *nix (Linux, MacOSX)
Buscar un archivo en la carpeta de usuario llamado .bashrc o .bash_profile, ábrelo con tu editor preferido y pones las siguientes líneas:
export WORKON_HOME=$HOME/.entornos
source /usr/local/bin/virtualenvwrapper.sh
En estas dos líneas lo que hacemos es definir cuál es el directorio donde vamos a guardar los entornos y en la que sigue estamos ejecutando el script de inicialización de virtualenvwrapper. Recuerda que podrías poner cualquier ruta del sistema por ejemplo:
export WORKON_HOME=/tmp/entornos
o
export WORKON_HOME=/home/andres/proyectos/entornos
Después de esto es necesario recargar las variables de entorno, si editamos el archivo .bashrc lo hacemos así:
source ~/.bashrc
si editamos el archivo .bash_history lo hacemos así:
source ~/.bash_history
Nota: También podrías simplemente cerrar y reabrir la consola, así se recargaría automáticamente.

Para Sistemas Windows:
Después de tener instalado Virtualenv en Windows (recuerda el post anterior) debes instalar desde la linea de comandos (CMD) virtualenvwrapper mediante la orden:
pip install virtualenvwrapper-win
después debes crear la carpeta para los entornos así:
mkdir %USERPROFILE%\entornos
y luego debes establecer las variables en el entorno así:
  • Entra al menú de propiedades:
    • Accede al menú de Inicio, click derecho al botón Equipo, y click al botón de propiedades.
    • Click al botón de configuración avanzada del sistema.
    • Click a el botón variables de entorno.
    • En la sección de Variables de entorno agregamos una variable llamada WORKON_HOME con el valor %USERPROFILE%\entornos.
La próxima vez que abramos una consola ya podremos usar virtualenvwrapper.

Nota: Si estás en Windows debes instalar virtualenvwrapper-win y si quieres y tienes Powershell virtualenvwrapper-powershell porque el paquete virtualenvwrapper es exclusivo de sistemas *nix.

Nota: El paquete virtualenvwrapper-win tiene como ruta por defecto de los entornos la carpeta %USERPROFILE%\Envs, por tanto si quieres obviar la configuración de la variable de entorno podrías hacerlo.

Nota: En ocasiones la instalación de virtualenvwrapper-win mediante pip no establece los ejecutables necesarios en la carpeta de scripts de python, por lo cual deberá instalarse descargando el código fuente mediante Git así:
git clone git://github.com/davidmarble/virtualenvwrapper-win.git
cd virtualenvwrapper-win
python setup.py install

Nota: es probable que al usar la orden mkvirtualenv salga el mensaje:
"El sistema no puede encontrar la ruta especificada."
no te preocupes por eso, el entorno se crea de todas maneras.


Modo de empleo:
Para crear entornos nuevos usamos:
mkvirtualenv <entorno> # entorno estandar
mkvirtualenv <entorno1> --no-site-packages # entorno totalmente aislado
Para activar el entorno:
workon <entorno>
Para desactivarlo:
deactivate
Para listar los entornos existentes:
lsvirtualenv
Para eliminar un entorno (recuerde que no puede estar usándolo en el momento de eliminarlo)
rmvirtualenv <entorno>
Para copiar un entorno:
cpvirtualenv <entorno> <nombre-copia>
Para ejecutar un comando en todos los entornos:
allvirtualenv <comando>
# un ejemplo sería:
allvirtualenv pip install django
Este es un listado de comandos básicos para la gestión de entornos y en este enlace queda la documentación de los comando de virtualenvwrapper.

Espero que les sirva de ayuda.
Si te gusto el post
compartelo... :D

martes, 19 de noviembre de 2013

Virtualenv, qué, por qué y cómo.


Cuando alguien empieza en el mundo de python lo que hace es crear sus programas e instalar librerías indiscriminadamente, sin tener en cuenta que puede que más adelante tenga conflictos a causa de las versiones de las librerías necesarias para sus proyecto. Es aquí donde Virtualenv salva el día.



¿Qué es Virtualenv?:
Virtualenv es una herramienta para crear entornos de python aislados, es decir entornos donde las librerías o las versiones de python no interfieren con las carpetas que python tiene por defecto en la maáquina. Haciendo una analogía con un edificio, un entorno vendría siendo como una planta, usa ciertos recursos como el agua o la energía eléctrica (para el caso de python usa la misma máquina) y a su vez cada planta tiene sus propios recursos, tales como los muebles, las habitaciones y demás (para el caso de python hablamos de librerías.).

¿Por qué?:
Cuando tienes python en tu máquina probablemente debas usar django 1.5 para un proyecto que surgio hace tiempo, y django1.6 para poder usar nuevas funciones, por esto es necesario usar Virtualenv, porque con ésta herramienta puedes crear espacios de trabajo separados con diferentes librerías o diferentes versiones de las mismas.

¿Cómo?:
Instalación:
primero debes tener python, luego instalas setuptools para poder usar easy_install, con easy_install instalas pip mediante la orden
easy install pip
y finalmente con pip instalas virtualenv
pip install virtualenv

nota: si usas Windows deberías agregar la carpeta de scripts de Python al path del sistema para poder usarlo desde la línea de comandos, mira este enlace.

Modo de empleo:

  • Crear un entorno 
    • virtualenv nombre_del_entorno 
  • Crear un entorno totalmente aislado virtualenv --no-site-packages nombre_del_entorno 
  • Usar un entorno especifico:
    • Hay que tener en cuenta que si es windows se hace de una manera un tanto diferente, puesto que en la carpeta del entono el genera una subcarpeta llamada Scripts y ahí está ubicado un archivo llamado activate.bat, mediante este se activa el entorno, entonces:
      • Para Windows (mediante la linea de comandos):
        • C:\.....\carpeta> ruta\a\la\carpeta\del\entorno\Scripts\activate.bat 
      • Para *nix [Mac, Linux] (desde la consola):
        • source /ruta/a/la/carpeta/del/entono/bin/activate 
    • nota: si el entorno quedo bien activado al principio de la linea de la consola debe aparecer entre parentesis el nombre del entorno, mas o menos así: 
      • (entorno)ogranada@maquina:~/python$ 
  • Para buscar paquetes 
    • pip search 
  • Instalar un paquete 
    • pip install paquete 
  • Eliminar paquete 
    • pip uninstall paquete 
  • Listar paquetes instalados (sirve para replicar el entono) 
    • solo listar 
      • pip freeze 
    • hacer archivo para replicar entorno 
      • pip freeze > requirements.txt 
  • Salir del entorno
    • deactivate



Espero que les sirva de ayuda.

Si te gusto el post
compartelo... :D