Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Deja tu post en el foro para hacer algun tipo de consulta

Autor Tema: virtualenv & virtualenvwrapper  (Leído 12972 veces)

0 Usuarios y 1 Visitante están viendo este tema.

slothy

  • Usuario nuevo
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Mensajes: 10
    • Ver Perfil
virtualenv & virtualenvwrapper
« en: Julio 23, 2011, 13:01:10 pm »

Hola,

En respuesta y agradecimiento a los usuarios que han publicado guías anteriormente y a los administradores del sistema por su ayuda, voy  a publicar un mini how-to sobre como poner en marcha en una de las cuentas virtual host un sistema de "entornos aislados" para python.

¿Qué conseguimos con esto?, bien, con un poco de configuración podemos conseguir un sistema de librería python totalmente independiente del instalado en el sistema. ¿Por qué?,
puede ser que en un momento dado, necesitemos una versión concreta de una librería para un proyecto en Django, inferior a la versión utilizada en en sistema y un larguísimo etc.

Cuando en un programa python se realiza un "import" en intérprete además de buscar en el directorio local, busca en una variable llamada "PYTHONPATH", en nuestro caso práctico:
Código: [Seleccionar]
[~]# python
Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
...

El resultado son las rutas donde el interprete python buscaría módulos.

Ejemplo práctico, modulo "pytranslate", un módulo que utiliza la api de google translate para traducción:
Código: [Seleccionar]
[~]# python
Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pytranslate
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pytranslate

Como vemos el intérprete de python no encuentra el módulo, de momento dejémoslo ahí y cuando hayamos instalado virtualenv volveremos a pytranslate.

virtualenv y virtualenvwrapper


La instalación no puede ser más sencilla...

Código: [Seleccionar]
[~]#pip install --install-option="--user" virtualenvwrapper
La opción
Citar
--install-option="--user"
hará que virtualenv y virtualenvwrapper se instalen en ~/.local

A partir de aquí, creamos un directorio donde almacenaremos nuestro entornos python, por ejemplo "python_envs"

Código: [Seleccionar]
cd
mkdir python_envs
export WORKON_HOME=$HOME/python_envs
source $HOME/.local/bin/virtualenvwrapper.sh

Con export y source estamos indicándole al intérprete de comandos que cree una variable WORK_ON con el path a nuestro contenedor de entornos y que ejecute un script que pone en marcha el sistema
Para que podamos automatizar este proceso editamos nuestro .bashrc, e incluimos a final:

Código: [Seleccionar]
export WORKON_HOME=$HOME/python_envs
export VIRTUALENVWRAPPER_VIRTUALENV=$HOME/.local/bin/virtualenv
source $HOME/.local/bin/virtualenvwrapper.sh
 

Ahora podemos ponernos manos a la obra, creando nuestro primer entorno:

Código: [Seleccionar]
[~]# workon
[~]# mkvirtualenv test
[~]# pip install ez_setup
[~]# pip install pytranslate

Con esto tenemos nuestro primer entorno en marcha, además hemos instalado 2 módulos en el, ahora a probarlos toca:

Código: [Seleccionar]
[~]# python
Python 2.6.5 (r265:79063, Feb 28 2011, 21:55:45)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pytranslate
>>> pytranslate.translate("Hola mundo!",sl="spanish",tl="english")
'Hello world!'

Et voilà!
« última modificación: Julio 23, 2011, 13:03:00 pm por slothy »
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:virtualenv & virtualenvwrapper
« Respuesta #1 en: Julio 25, 2011, 15:29:47 pm »

Gracias por el aporte. También comentar, que aunque se opte por virtualenv, en Quijost, previa petición de un usuario, estamos dispuestos a instalar los módulos que necesiten
los clientes.

Por ejemplo, pytranslate, si fuera necesario, puede ser instalado por defecto en el server1.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support
 

Página generada en 0.09 segundos con 33 consultas.