Salta al contenuto

Come posso creare un ambiente virtuale Python 3 con la libreria Boto3 in AL2 o AL2023?

4 minuti di lettura
0

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:

  1. Utilizza la modalità SSH per connetterti all'istanza EC2 Linux.

  2. Per aggiornare l'indice dei pacchetti, esegui questo comando:

    yum check-update

    Nota: il comando precedente cerca anche gli aggiornamenti disponibili. Non serve aggiornare altri pacchetti per creare l'ambiente Python 3.

  3. Per determinare se sull'host è già installato Python 3, esegui questo comando:

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

    Se Python 3 non è installato, ottieni il risultato seguente:

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

    Se 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.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
    
  4. 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:

  1. 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.

  2. 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.

  3. Per assicurarti che nell'ambiente sia installato l'ultimo modulo pip, esegui questo comando:

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Per installare la libreria Boto3 all'interno dell'ambiente virtuale, esegui questo comando:

    (env) [ec2-user ~]$ pip install boto3
  5. 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.
    >>>>
  6. Per importare la libreria Boto3 e verificare che funzioni, esegui questo comando:

    >>> import boto3                          # no error    

    L'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
  7. Per uscire dall'ambiente virtuale, esegui questo comando:

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. 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}/.bashrc

    Nota: sostituisci my_app con il nome della directory dell'applicazione. Il comando precedente attiva automaticamente l'ambiente virtuale.

  9. Per ricaricare l'ambiente bash dell'ambiente, esegui questo comando:

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

    Esempio 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)

AWS UFFICIALEAggiornata 5 mesi fa