Instalar y usar virtualenv con Python 3

Generalidades

Virtualenv (ambiente virtual) es una herramienta usada para crear un ambiente Python aislado. Este ambiente tiene su propio directorio de instalación que no comparte librerías con otros ambientes virtualenv (y opcionalmente no accede las librerías globales instaladas tampoco).

Virtualenv es la manera más fácil recomendada para configurar un ambiente personalizado Python.

Para correr los siguientes comandos, tú debes iniciar sesión en el servidor vía SSH con tu usuario Shell. Vé los siguientes artículos para más información.

Instalar Virtualenv usando pip3

Virtualenv es instalado por defecto en todos los servidores DreamHost para las versiones de Python 2. Si estás trabajando con Python 3, debes instalar virtualenv usando pip3.

Quizá quieras actualizar primero a pip3.

[server]$  python3 -m pip install --upgrade pip

Estas instrucciones asumen que tu ya has instalado una versión personalizada de Python 3. Después de la instalación y si tu Shell está usando esta versión, corre pip3 para instalar virtualenv:

[server]$ pip3 install virtualenv
Collecting virtualenv Downloading virtualenv-15.1.0-py2.py3-none-any.whl (1.8MB) 100% |████████████████████████████████| 1.8MB 367kB/s Installing collected packages: virtualenv Successfully installed virtualenv-15.1.0

Necesitarás el comando completo para el virtualenv de la versión de Python, corre entonces lo siguiente para verlo.

[server]$ which virtualenv
/home/username/opt/python-3.6.2/bin/virtualenv

Crear un ambiente virtual usando una versión personalizada de Python

Cuando trabajas con un ambiente virtual en Python, es común usar una versión personalizada de Python 3 en vez de la versión del servidor. Para crear un nuevo ambiente virtual usando tu versión personalizada instalada, sigue los siguientes pasos:

Los siguientes pasos usando las versión 3.6.2 de Python. Asegúrate de usar la versión que tienes instalada.

  1. Toma nota del camino que toma el archivo para la versión personalizada de Python ya instalada. Si has seguido las instrucciones del artículo de instalación, el camino es:
    [server]$ which python3
    /home/username/opt/python-3.6.2/bin/python
  2. Navega al directorio de tu sitio, donde crearás el nuevo ambiente virtual:
    [server]$ cd ~/example.com
  3. Corre el siguiente comando para actualizar tu archivo .bash_profile:
    [server]$ . ~/.bash_profile
  4. Crea un ambiente virtual mientras específicas la versión de Python que deseas usar. El siguiente comando crea un virtualenv llamado 'my_project' y usa una bandera -p para especificar el camino a la versión de Python 3 que acabas de instalar.
    Puedes llamar el virtualenv como tu quieras.
    [server]$ virtualenv -p /home/example_username/opt/python-3.6.2/bin/python3 my_project
    
    Running virtualenv with interpreter /home/example_username/opt/python-3.6.2/bin/python3
    Using base prefix '/home/example_username/opt/python-3.6.2'
    New python executable in /home/example_username/example.com/env/bin/python3
    Also creating executable in /home/example_username/example.com/env/bin/python
    Installing setuptools, pip, wheel...done.
    • Este comando crea una copia local en tu ambiente específico para este sitio web. Mientras trabajas en tu sitio web, deberás activar el ambiente local para asegurarte que estás trabajando con la versión correcta de tus herramientas y paquetes.
  5. Para activar el nuevo ambiente virtual, corre lo siguiente:
    [server]$ source my_project/bin/activate
    El nombre del actual ambiente virtual aparece a la izquierda del intento. Por ejemplo:
    (my_project) [server]$ 
  6. Para verificar la versión correcta de Python, correo lo siguiente:
    [server]$ python -V
    Python 3.6.2

Cualquier paquete que instalas usando pip está ahora ubicado en la carpeta de proyectos de ambientes virtuales, aislado de la instalación global de Python.

Desactivar tu virtualenv

Cuando finalices tu trabajo en tu ambiente virtual, puedes desactivarlo corriendo lo siguiente:

[server]$ deactivate
  • Esto te pone nuevamente en las configuraciones por defecto de tu usuario de Shell.

Eliminar tu ambiente virtual

Para eliminar tu ambiente virtual, simplemente elimina la carpeta del proyecto. Usando el ejemplo anterior, corre el siguiente comando:

[server]$ rm -rf my_project

Instalar módulos personalizados

Vé el siguiente artículo para ver información de como usar pip para instalar módulos de Python.

Solución de Problemas

Errores creando un virtualenv

Tu puedes ver los siguientes errores cuando trates de crear un virtualenv usando Python 3.7.

AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

OSError: Command /home/username/venv/bin/python3 -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1

Agregar la siguientes líneas cuando instales una versión personalizada de OpenSSL a tu .bash_profile para que resuelva eso.

export LC_ALL="en_US.UTF-8"

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.