Come posso creare un ambiente virtuale Python 3 con la libreria Boto 3 su Amazon Linux 2?
Ho un'istanza Amazon Elastic Compute Cloud (Amazon EC2) che esegue Amazon Linux 2. Desidero creare un ambiente virtuale Python 3 isolato con la libreria Boto 3 sulla mia istanza.
Risoluzione
Installa Python 3 per Amazon Linux 2
-
Usa SSH per connetterti all'istanza EC2 Linux. Per ulteriori informazioni, consulta la pagina Connettiti alla tua istanza Linux da Linux o macOS utilizzando SSH.
-
Esegui un comando yum check-update per aggiornare l'indice dei pacchetti. Il comando check-update cercherà anche gli aggiornamenti disponibili. Per creare l'ambiente Python 3 non è necessario aggiornare altri pacchetti.
-
Per determinare se sull'host è già installato Python 3, esegui il comando list installed:>
[ec2-user ~]$ yum list installed | grep -i python3
Se Python 3 non è installato, otterrai il risultato seguente:
[ec2-user ~]$ yum list installed | grep -i python3[ec2-user ~]$ [ec2-user ~]$ python3 -bash: python3: command not found
Se Python 3 è installato, otterrai il risultato seguente:
[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
-
Se Python 3 non è installato, installa il pacchetto utilizzando il gestore di pacchetti yum:
[ec2-user ~]$ sudo yum install python3 -y
Crea un ambiente virtuale nella home directory ec2-user
Il comando seguente crea la directory dell'app con l'ambiente virtuale al suo interno. Puoi sostituire my_app con un altro nome. Se modifichi my_app, fai riferimento al nuovo nome nei passaggi di risoluzione rimanenti:
[ec2-user ~]$ python3 -m venv my_app/env
Attiva l'ambiente virtuale e installa Boto 3
-
Associa un ruolo AWS Identity and Access Management (IAM) alla tua istanza EC2 con policy di autorizzazione per consentire a Boto 3 di interagire con le API AWS. Per altri metodi di autenticazione, consulta la documentazione di Boto 3.
-
Per attivare l'ambiente, esegui il file activate nella directory bin all'interno della directory del tuo progetto:
[ec2-user ~]$ source ~/my_app/env/bin/activate(env) [ec2-user ~]$
-
Assicurati che nel tuo ambiente sia installato il modulo pip più recente:
(env) [ec2-user ~]$ pip install pip --upgrade
-
Per installare la libreria Boto 3 all'interno dell'ambiente virtuale, usa il comando pip:
(env) [ec2-user ~]$ pip install boto3
-
Esegui 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. >>>>
-
Importa la libreria Boto 3 e assicurati che funzioni. Questo passaggio richiede la configurazione delle policy di autorizzazione del passaggio 1. L'output dell'esempio seguente elenca tutti i bucket Amazon Simple Storage Service (Amazon S3) all'interno dell'account:
>>> import boto3 # no error>>> s3 = boto3.resource('s3') >>> for bucket in s3.buckets.all(): print(bucket.name) >>> exit()
-
Per uscire dall'ambiente virtuale, esegui il comando deactivate:
(env) [ec2-user ~]$ deactivate [ec2-user ~]$
-
Per attivare automaticamente l'ambiente virtuale al momento dell'accesso, aggiungilo al file ~/.bashrc:
[ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc
-
Esegui il file ~/.bashrc nella tua home directory per ricaricare l'ambiente bash del tuo ambiente. Questo attiverà automaticamente il tuo ambiente virtuale. Il prompt riflette la modifica (env). Questa modifica si applica anche alle sessioni SSH future:
[ec2-user ~]$ source ~/.bashrc (env) [ec2-user ~]$
Informazioni correlate
Aggiornamento del software dell'istanza sull'istanza Amazon Linux
Avvio di un'istanza tramite la vecchia procedura guidata di avvio
Virtualenv sul sito web di Python Packaging Authority (PYPA)
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa