Comment créer un environnement virtuel Python 3 avec la bibliothèque Boto 3 sur Amazon Linux 2 ?

Lecture de 4 minute(s)
0

J’utilise une instance Amazon Elastic Compute Cloud (Amazon EC2) qui s’exécute sur Amazon Linux 2. Je souhaite créer un environnement virtuel Python 3 isolé avec la bibliothèque Boto 3 sur mon instance.

Résolution

Installation de Python 3 pour Amazon Linux 2

  1. Utilisez le protocole SSH pour vous connecter à votre instance Linux EC2. Pour en savoir plus, consultez la section Connexion à une instance Linux depuis Linux ou macOS via SSH.

  2. Lancez une commande yum check/update pour actualiser l’index du package. La commande check/update vérifie é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 list installed :>

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

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

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

    Si Python 3 est installé, vous obtenez la sortie suivante :

    [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 n’est pas installé, vous pouvez installer le package avec le gestionnaire de packages yum :

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

Création d’un environnement virtuel dans le répertoire de base ec2-user

La commande suivante permet de créer le répertoire de l’application contenant l’environnement virtuel. Vous pouvez remplacer my_app par un autre nom. Si vous modifiez my_app, le nouveau nom choisi doit alors apparaître dans les étapes restantes :

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

Activation de l’environnement virtuel et installation de Boto 3

  1. Vous devez associer un Rôle de gestion des identités et des accès (IAM) AWS à votre instance EC2 et des stratégies d’autorisation permettant à Boto 3 d’interagir avec les API AWS. Pour connaître les autres méthodes d’authentification, veuillez consulter la documentation relative à Boto 3.

  2. Pour activer votre environnement, recherchez le fichier d’activation dans le répertoire bin situé sous le répertoire de votre projet :

    [ec2-user ~]$ source ~/my_app/env/bin/activate(env) [ec2-user ~]$
  3. Vérifiez que le dernier module pip est bien installé sur votre environnement :

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Pour installer la bibliothèque Boto 3 dans votre environnement virtuel, utilisez la commande pip :

    (env) [ec2-user ~]$ pip install boto3
  5. Exécutez 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. Importez la bibliothèque Boto 3, puis vérifiez qu’elle fonctionne correctement. Cette étape exige que vous ayez configuré les politiques d’autorisation à l’étape 1. L’exemple de sortie suivant répertorie tous les compartiments Amazon Simple Storage Service (Amazon S3) du compte :

    >>> import boto3           # no error>>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    print(bucket.name)
    >>> exit()
  7. Pour quitter l’environnement virtuel, exécutez la commande de désactivation :

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. Pour activer automatiquement l’environnement virtuel lorsque vous vous connectez, ajoutez-le au fichier ~/.bashrc :

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc
  9. Vous pouvez exécuter le fichier ~/.bashrc dans votre répertoire personnel pour recharger l’environnement bash de votre environnement. Votre environnement virtuel sera alors automatiquement activé. L’invite reflète la modification (env). Cette modification s’appliquera également à toutes les sessions SSH futures :

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

Informations connexes

Mise à jour du logiciel d’instance sur une instance Amazon Linux

Lancement d’une instance à l’aide de l’assistant de lancement d’instance

Virtualenv sur le site web de Python Packaging Authority (PYPA)

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois