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:
[~]# 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:
[~]# 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 virtualenvwrapperLa instalación no puede ser más sencilla...
[~]#pip install --install-option="--user" virtualenvwrapper
La opción
--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"
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:
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:
[~]# 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:
[~]# 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à!