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

Date de la dernière mise à jour : 07/02/2020

Comment créer un environnement Python 3 isolé avec la bibliothèque Boto 3 sur une instance Amazon Elastic Compute Cloud (Amazon EC2) ou une solution sur site exécutant Amazon Linux 2 ?

Brève description

Pour créer un environnement Python isolé pour Amazon Linux 2, vous devez :

1.    installer Python 3 pour Amazon Linux 2 ;

2.    installer un environnement virtuel sous le répertoire de base ec2-user ;

3.    Activez l'environnement et installez Boto 3.

Résolution

Installer Python 3 pour Amazon Linux 2

1.    Connectez-vous à votre instance Linux EC2 à l'aide de SSH. Pour plus d'informations, rendez-vous sur la page Connexion à votre instance Linux à l'aide de SSH.

2.    Effectuez une mise à jour yum check-update pour actualiser l'index du package. La mise à jour check-update recherche également les mises à jour disponibles. La mise à jour d'autres packages ne devrait pas être obligatoire pour créer l'environnement Python 3.

3.    Exécutez la commande list installed pour déterminer si Python 3 est déjà installé sur l'hôte.

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

Exemple de sortie Python 3 non installé :

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

[ec2-user ~]$ python3
-bash: python3: command not found

Exemple de sortie Python 3 déjà installé :

[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 déjà installé, installez le package à l'aide du gestionnaire de package yum.

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

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

La commande suivante crée le répertoire de l'application avec l'environnement virtuel à l'intérieur de celui-ci. Vous pouvez remplacer my_app par un autre nom. Si vous modifiez my_app, veillez à référencer le nouveau nom dans les étapes de résolution restantes.

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

Activer l'environnement virtuel et installer Boto 3

1.    Associez un rôle AWS Identity and Access Management (IAM) à l'instance EC2 avec les stratégies d'autorisation appropriées afin que Boto 3 puisse interagir avec les API AWS. Pour les autres méthodes d'authentification, consultez la documentation de Boto 3.

2.    Activez l'environnement en fournissant le fichier activate dans le répertoire bin sous le répertoire du projet.

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

3.    Assurez-vous que le dernier module pip est installé dans l'environnement.

(env) [ec2-user ~]$ pip install pip --upgrade

4.    Utilisez la commande pip pour installer la bibliothèque Boto 3 dans l'environnement virtuel.

(env) [ec2-user ~]$ pip install boto3

5.    Exécutez Python à l'aide de l'exécutable python.

(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.    Importez la bibliothèque Boto 3, puis vérifiez que tout fonctionne correctement. Cette étape nécessite que vous disposiez des stratégies d'autorisation configurées à 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.    Utilisez la commande deactivate pour quitter l'environnement virtuel.

(env) [ec2-user ~]$ deactivate

[ec2-user ~]$

8.    Pour activer l'environnement virtuel automatiquement lorsque vous vous connectez, ajoutez-le au fichier ~/.bashrc.

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

9.    Fournissez le fichier ~/.bashrc dans le répertoire de base pour recharger l'environnement bash de votre environnement. Le rechargement active automatiquement l'environnement virtuel. L'invite reflète la modification (env). Cette modification s'applique également à toutes les futures connexions SSH.

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

(env) [ec2-user ~]$