¿Cómo creo un entorno virtual de Python 3 con la biblioteca de Boto 3 en Amazon Linux 2?

4 minutos de lectura
0

Tengo una instancia de Amazon Elastic Compute Cloud (Amazon EC2) que se ejecuta en Amazon Linux 2. Quiero crear un entorno virtual de Python 3 aislado con la biblioteca de Boto 3 en mi instancia.

Solución

Instalación de Python 3 para Amazon Linux 2

  1. Utilice SSH para conectarse a su instancia Linux de EC2. Para obtener más información, consulte Conéctese a la instancia de Linux desde Linux o macOS mediante SSH.

  2. Ejecute check-update de yum para actualizar el índice de paquetes. check-update también busca las actualizaciones disponibles. No es necesario actualizar otros paquetes para crear el entorno de Python 3.

  3. Para determinar si su host ya tiene instalado Python 3, ejecute list installed: >

    [ec2-user ~]$ yum list installed | grep -i python3

    Si Python 3 no está instalado, obtendrá el siguiente resultado:

    [ec2-user ~]$ yum list installed | grep -i python3[ec2-user ~]$
    
    [ec2-user ~]$ python3
    -bash: python3: command not found

    Si Python 3 está instalado, obtendrá el siguiente resultado:

    [ec2-user ~]$ yum list installed | grep -i python3
    python3.x86_64                        3.7.4-1.amzn2.0.4              @amzn2-core
    python3-libs.x86_64                   3.7.4-1.amzn2.0.4              @amzn2-core
    python3-pip.noarch                    9.0.3-1.amzn2.0.1              @amzn2-core
    python3-setuptools.noarch             38.4.0-3.amzn2.0.6             @amzn2-core
    
    [ec2-user ~]$ whereis python3
    python3: //usr/bin/python3 /usr/bin/python3.7 /usr/bin/python3.7m /usr/lib/python3.7 /usr/lib64/python3.7 /usr/include/python3.7m /usr/share/man/man1/python3.1.gz
  4. Si Python 3 no está instalado, instale el paquete con el administrador de paquetes de yum:

    [ec2-user ~]$ sudo yum install python3 -y

Creación de un entorno virtual en el directorio principal de ec2-user

El siguiente comando crea el directorio de la aplicación con el entorno virtual en su interior. Puede cambiar my_app por otro nombre. Si cambia my_app, haga referencia al nuevo nombre en los pasos de resolución restantes:

[ec2-user ~]$ python3 -m venv my_app/env

Activación del entorno virtual e instalación de Boto 3

  1. Adjunte un rol de AWS Identity and Access Management (IAM) a su instancia de EC2 con políticas de permisos para que Boto 3 interactúe con las API de AWS. Para ver otros métodos de autenticación, consulte la documentación de Boto 3.

  2. Para activar el entorno, obtenga el archivo activate del directorio bin del directorio de su proyecto:

    [ec2-user ~]$ source ~/my_app/env/bin/activate(env) [ec2-user ~]$
  3. Asegúrese de que su entorno tenga instalado el módulo pip más reciente:

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Para instalar la biblioteca de Boto 3 en su entorno virtual, utilice el comando pip:

    (env) [ec2-user ~]$ pip install boto3
  5. Ejecute Python:

    (env) [ec2-user ~]$ pythonPython 3.7.4 (default, Dec 13 2019, 01:02:18)
    [GCC 7.3.1 20180712 (Red Hat 7.3.1-6)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>>
  6. Importe la biblioteca de Boto 3 y, a continuación, verifique que funcione. Este paso requiere que haya configurado las políticas de permisos del paso 1. En el siguiente ejemplo de resultado se enumeran todos los buckets de Amazon Simple Storage Service (Amazon S3) de la cuenta:

    >>> import boto3           # no error>>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    print(bucket.name)
    >>> exit()
  7. Para salir del entorno virtual, ejecute el comando deactivate:

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. Para activar el entorno virtual automáticamente al iniciar sesión, agréguelo al archivo ~/.bashrc:

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc
  9. Obtenga el archivo ~/.bashrc de su directorio principal para volver a cargar el entorno bash de su entorno. Esto activa automáticamente el entorno virtual. El mensaje refleja el cambio (env). Este cambio también se aplica a cualquier sesión SSH futura:

    [ec2-user ~]$ source ~/.bashrc
    (env) [ec2-user ~]$

Información relacionada

Actualizar software en la instancia de Amazon Linux

Lance una instancia con el antiguo asistente de lanzamiento de instancias

Virtualenv en el sitio web de Python Packaging Authority (PYPA)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 8 meses