Come posso creare un ambiente virtuale Python 3 con la libreria Boto3 in AL2 o AL2023?
Ho un'istanza Amazon Elastic Compute Cloud (Amazon EC2) in esecuzione su Amazon Linux 2 (AL2) o Amazon Linux 2023 (AL2023). Desidero creare un ambiente virtuale Python 3 isolato con AWS SDK per Python (Boto3) nella mia istanza.
Risoluzione
Installa Python 3
Completa i seguenti passaggi:
-
Utilizza la modalità SSH per connetterti all'istanza EC2 Linux.
-
Per aggiornare l'indice dei pacchetti, esegui questo comando:
yum check-updateNota: il comando precedente cerca anche gli aggiornamenti disponibili. Non serve aggiornare altri pacchetti per creare l'ambiente Python 3.
-
Per determinare se sull'host è già installato Python 3, esegui questo comando:
[ec2-user ~]$ yum list installed | grep -i python3Se Python 3 non è installato, ottieni il risultato seguente:
[ec2-user ~]$ yum list installed | grep -i python3 [ec2-user ~]$ python3 -bash: python3: command not foundSe Python 3 è installato, ricevi il seguente output a seconda della distribuzione:
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.gzAL2023:
[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 -
Se Python 3 non è installato, esegui questo comando per installare il pacchetto con il gestore di pacchetti yum:
[ec2-user ~]$ sudo yum install python3 -y
Crea un ambiente virtuale nella home directory ec2-user
Per creare la directory dell'app con l'ambiente virtuale al suo interno, esegui questo comando:
[ec2-user ~]$ python3 -m venv my_app/env
Nota: sostituisci my_app con il nome della directory dell'applicazione.
Attiva l'ambiente virtuale e installa la libreria Boto3
Completa i seguenti passaggi:
-
Associa un ruolo AWS Identity and Access Management (AWS IAM) all'istanza. Il ruolo deve avere una policy di autorizzazione che consenta a SDK per Python (Boto3) di eseguire le azioni richieste dalla configurazione. Per altri metodi di autenticazione, consulta Configuration (Configurazione) sul sito web Boto3.
-
Per attivare l'ambiente, esegui questo comando:
[ec2-user ~]$ source ~/my_app/env/bin/activate (env) [ec2-user ~]$Nota: sostituisci my_app con il nome della directory dell'applicazione.
-
Per assicurarti che nell'ambiente sia installato l'ultimo modulo pip, esegui questo comando:
(env) [ec2-user ~]$ pip install pip --upgrade -
Per installare la libreria Boto3 all'interno dell'ambiente virtuale, esegui questo comando:
(env) [ec2-user ~]$ pip install boto3 -
Per eseguire Python, esegui questo comando:
(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. >>>> -
Per importare la libreria Boto3 e verificare che funzioni, esegui questo comando:
>>> import boto3 # no errorL'esempio di output seguente elenca tutti i bucket Amazon Simple Storage Service (Amazon S3) all'interno dell'account 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 -
Per uscire dall'ambiente virtuale, esegui questo comando:
(env) [ec2-user ~]$ deactivate [ec2-user ~]$ -
Per attivare automaticamente l'ambiente virtuale all'accesso, aggiorna il file ~/.bashrc eseguendo questo comando:
[ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrcNota: sostituisci my_app con il nome della directory dell'applicazione. Il comando precedente attiva automaticamente l'ambiente virtuale.
-
Per ricaricare l'ambiente bash dell'ambiente, esegui questo comando:
[ec2-user ~]$ source ~/.bashrcEsempio di output:
(env) [ec2-user ~]$Nota: (env) mostra che hai attivato correttamente l'ambiente virtuale. Ora puoi usare l'ambiente Python di default in tutte le future sessioni SSH e quando esegui il comando source ~/bashrc.
Informazioni correlate
Update instance software on your AL2 instance (Aggiornamento del software dell'istanza nell'istanza AL2)
Avvia un' istanza EC2 utilizzando la procedura guidata di avvio dell'istanza nella console
Virtualenv sul sito web Python Packaging Authority (PYPA)
- Argomenti
- Compute
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 5 mesi fa