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 :
-
Utilisez le protocole SSH pour vous connecter à votre instance Linux EC2.
-
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.
-
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
-
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 :
-
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.
-
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.
-
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
-
Pour installer la bibliothèque Boto3 dans votre environnement virtuel, exécutez la commande suivante :
(env) [ec2-user ~]$ pip install boto3
-
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.
>>>>
-
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
-
Pour quitter l'environnement virtuel, exécutez la commande suivante :
(env) [ec2-user ~]$ deactivate
[ec2-user ~]$
-
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.
-
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)