Come posso creare un ambiente virtuale Python 3 con la libreria Boto 3 su Amazon Linux 2?

4 minuti di lettura
0

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

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

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

  3. 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
  4. 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

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

  2. 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 ~]$
  3. Assicurati che nel tuo ambiente sia installato il modulo pip più recente:

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

    (env) [ec2-user ~]$ pip install boto3
  5. 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.
    >>>>
  6. 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()
  7. Per uscire dall'ambiente virtuale, esegui il comando deactivate:

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

AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa