Passer au contenu

Comment créer un environnement virtuel Python 3 avec la bibliothèque Boto3 sur AL2 ou AL2023 ?

Lecture de 4 minute(s)
0

J’utilise une instance Amazon Elastic Compute Cloud (Amazon EC2) qui s’exécute sur Amazon Linux 2 (AL2) ou sur Amazon Linux 2023 (AL2023). Je souhaite créer un environnement virtuel Python 3 isolé avec le kit SDK AWS for Python (Boto3) sur mon instance.

Résolution

Installer Python 3

Procédez comme suit :

  1. Utilisez le protocole SSH pour vous connecter à votre instance Linux EC2.

  2. Pour actualiser l'index de packages, exécutez la commande suivante :

    yum check-update

    Remarque : La commande précédente recherche également les mises à jour disponibles. Il n’est pas nécessaire de mettre à jour d’autres packages pour créer l’environnement Python 3.

  3. Pour déterminer si Python 3 est déjà installé sur votre hôte, exécutez la commande suivante :

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

    Si Python 3 n’est pas installé, vous recevez la sortie suivante :

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

    Si Python 3 est installé, vous recevez le résultat suivant en fonction de votre distribution :
    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 n'est pas installé, exécutez la commande suivante pour installer le package avec le gestionnaire de packages yum :

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

Créer un environnement virtuel dans le répertoire de base ec2-user

Pour créer le répertoire de l’application contenant l’environnement virtuel, exécutez la commande suivante :

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

Remarque : Remplacez my_app par le nom du répertoire de votre application.

Activer l'environnement virtuel et installer la bibliothèque Boto3

Procédez comme suit :

  1. Attachez un rôle Gestion des identités et des accès AWS (AWS IAM) à votre instance. Le rôle doit disposer d'une politique d'autorisations qui permet au kit SDK pour Python (Boto3) d'effectuer les actions requises par votre configuration. Pour d'autres méthodes d'authentification, consultez la page Configuration sur le site Web de Boto3.

  2. Pour activer l'environnement, exécutez la commande suivante :

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

    Remarque : Remplacez my_app par le nom du répertoire de votre application.

  3. Pour vous assurer que le dernier module pip est installé dans votre environnement, exécutez la commande suivante :

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Pour installer la bibliothèque Boto3 dans votre environnement virtuel, exécutez la commande suivante :

    (env) [ec2-user ~]$ pip install boto3
  5. Pour exécuter Python, exécutez la commande suivante :

    (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. Pour importer la bibliothèque Boto3 et vérifier qu'elle fonctionne, exécutez la commande suivante :

    >>> import boto3                          # no error    

    L’exemple de sortie suivant répertorie tous les compartiments Amazon Simple Storage Service (Amazon S3) du compte 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. Pour quitter l'environnement virtuel, exécutez la commande suivante :

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. Pour activer automatiquement l'environnement virtuel lorsque vous vous connectez, exécutez la commande suivante pour mettre à jour le fichier ~/.bashrc :

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

    Remarque : Remplacez my_app par le nom du répertoire de votre application. La commande précédente active automatiquement votre environnement virtuel.

  9. Pour recharger l'environnement bash de votre environnement, exécutez la commande suivante :

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

    Exemple de sortie :

    (env) [ec2-user ~]$

    Remarque : La valeur (env) indique que vous avez correctement activé votre environnement virtuel. Vous pouvez maintenant utiliser l'environnement Python par défaut dans toutes les futures sessions SSH et lorsque vous exécutez la commande source ~/bashrc.

Informations connexes

Mettre à jour le logiciel de votre instance AL2

Lancer une instance EC2 à l'aide de l'assistant de lancement d'instance de la console

Virtualenv sur le site Web de Python Packaging Authority (PyPA)

AWS OFFICIELA mis à jour il y a un an