Saltar al contenido

¿Cómo creo un entorno virtual de Python 3 con la biblioteca de Boto3 en AL2 o AL2023?

4 minutos de lectura
0

Tengo una instancia de Amazon Elastic Compute Cloud (Amazon EC2) que se ejecuta en Amazon Linux 2 (AL2) o Amazon Linux 2023 (AL2023). Quiero crear un entorno virtual de Python 3 aislado con el AWS SDK para Python (Boto3) en mi instancia.

Resolución

Instalación de Python 3

Sigue estos pasos:

  1. Usa SSH para conectarte a tu instancia de Linux de EC2.

  2. Para actualizar el índice de paquetes, ejecuta el siguiente comando:

    yum check-update

    Nota: El comando anterior también busca las actualizaciones disponibles. No es necesario actualizar otros paquetes para crear el entorno de Python 3.

  3. Para determinar si tu host ya tiene instalado Python 3, ejecuta el siguiente comando:

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

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

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

    Si Python 3 está instalado, recibirás el siguiente resultado según tu distribución:
    AL2:

    [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

    AL2023:

    [ec2-user ~]$ yum list installed | grep -i python3
    python3.x86_64                         3.9.21-1.amzn2023.0.3              @System
    python3-pip-wheel.noarch               21.3.1-2.amzn2023.0.11             @System
    python3-libs.x86_64                    3.9.21-1.amzn2023.0.3              @System
    python3-setuptools.noarch              59.6.0-2.amzn2023.0.5              @System
    
    [ec2-user ~]$ whereis python3
    python3: /usr/bin/python3 /usr/share/man/man1/python3.1.gz
    
  4. Si Python 3 no está instalado, ejecuta el siguiente comando para instalar el paquete con el administrador de paquetes yum:

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

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

Para crear el directorio de la aplicación con el entorno virtual en su interior, ejecuta el siguiente comando:

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

Nota: Sustituye my_app por el nombre del directorio de la aplicación.

Activación del entorno virtual e instalación de la biblioteca de Boto3

Sigue estos pasos:

  1. Adjunta un rol de AWS Identity and Access Management (IAM) a tu instancia. El rol debe tener una política de permisos que permita al SDK para Python (Boto3) realizar las acciones que requiere la configuración. Para ver otros métodos de autenticación, consulta la Configuración en el sitio web de Boto3.

  2. Para activar el entorno, ejecuta el siguiente comando:

    [ec2-user ~]$ source ~/my_app/env/bin/activate
    (env) [ec2-user ~]$

    Nota: Sustituye my_app por el nombre del directorio de la aplicación.

  3. Para asegurarte de que tu entorno tiene instalado el módulo pip más reciente, ejecuta el siguiente comando:

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Para instalar la biblioteca de Boto3 en tu entorno virtual, ejecuta el siguiente comando:

    (env) [ec2-user ~]$ pip install boto3
  5. Para ejecutar Python, ejecuta el siguiente comando:

    (env) [ec2-user ~]$ python
    Python 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. Para importar la biblioteca de Boto3 y confirmar que funciona, ejecuta el siguiente comando:

    >>> import boto3                          # no error    

    En el siguiente ejemplo de resultado se enumeran todos los buckets de Amazon Simple Storage Service (Amazon S3) de la cuenta de AWS:

    >>> import boto3                          # no error
    >>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    ...     print(bucket.name)
    ...                                       # Press Enter twice to execute the loop
    >>> exit()                                # Then type exit() to quit Python shell
  7. Para salir del entorno virtual, ejecuta el siguiente comando:

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. Para activar automáticamente el entorno virtual al iniciar sesión, ejecuta el siguiente comando para actualizar el archivo ~/.bashrc:

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc

    Nota: Sustituye my_app por el nombre del directorio de la aplicación. El comando anterior activa automáticamente el entorno virtual.

  9. Para volver a cargar el entorno bash de tu entorno, ejecuta el siguiente comando:

    [ec2-user ~]$ source ~/.bashrc

    Resultado de ejemplo:

    (env) [ec2-user ~]$

    Nota: (env) muestra que activaste correctamente el entorno virtual. Ahora puedes usar el entorno de Python de forma predeterminada en todas las sesiones SSH futuras y cuando ejecutes el comando source ~/bashrc.

Información relacionada

Actualización del software de instancia en la instancia de AL2

Inicio de una instancia de EC2 mediante el asistente de iniciación de instancias de la consola

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

OFICIAL DE AWSActualizada hace 6 meses