Direkt zum Inhalt

Wie erstelle ich eine virtuelle Python-3-Umgebung mit der Boto-3-Bibliothek auf AL2 oder AL2023?

Lesedauer: 4 Minute
0

Ich habe eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance, auf der Amazon Linux 2 (AL2) oder Amazon Linux 2023 (AL2023) ausgeführt wird. Ich möchte eine isolierte virtuelle Python-3-Umgebung mit dem AWS SDK für Python (Boto3) auf meiner Instance erstellen.

Lösung

Python 3 installieren

Führe die folgenden Schritte aus:

  1. Verwende SSH, um eine Verbindung zur EC2-Linux-Instance herzustellen.

  2. Führe den folgenden Befehl aus, um den Paketindex zu aktualisieren:

    yum check-update

    Hinweis: Der vorhergehende Befehl sucht auch nach verfügbaren Updates. Du musst keine anderen Pakete aktualisieren, um die Python-3-Umgebung zu erstellen.

  3. Um festzustellen, ob auf dem Host Python 3 bereits installiert ist, führe den folgenden Befehl aus:

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

    Wenn Python 3 nicht installiert ist, erhalte die folgende Ausgabe:

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

    Wenn Python 3 installiert ist, erhältst du basierend auf der Distribution die folgende Ausgabe:
    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

    AB 2023:

    [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. Wenn Python 3 nicht installiert ist, führe den folgenden Befehl aus, um das Paket mit dem Yum-Paketmanager zu installieren:

    [ec2-user ~]$ sudo yum install python3 -y

Erstellen einer virtuellen Umgebung unter dem Home-Verzeichnis ec2-user

Führe den folgenden Befehl aus, um das App-Verzeichnis mit der darin enthaltenen virtuellen Umgebung zu erstellen:

[ec2-user ~]$ python3 -m venv my_app/env

Hinweis: Ersetze my_app durch den Namen des Anwendungsverzeichnisses.

Aktivieren der virtuellen Umgebung und installieren von Boto 3-Bibliothek

Führe die folgenden Schritte aus:

  1. Ordne der Instance eine AWS Identity and Access Management (IAM)-Rolle zu. Die Rolle muss über eine Berechtigungsrichtlinie verfügen, die es dem SDK für Python (Boto3) ermöglicht, die für die Konfiguration erforderlichen Aktionen auszuführen. Weitere Authentifizierungsmethoden findest du unter Konfiguration auf der Boto3-Website.

  2. Führe den folgenden Befehl aus, um die Umgebung zu aktivieren:

    [ec2-user ~]$ source ~/my_app/env/bin/activate
    (env) [ec2-user ~]$

    Hinweis: Ersetze my_app durch den Namen des Anwendungsverzeichnisses.

  3. Um sicherzustellen, dass in der Umgebung das neueste Pip-Modul installiert ist, führe den folgenden Befehl aus:

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Führe den folgenden Befehl aus, um die Boto3-Bibliothek in der virtuellen Umgebung zu installieren:

    (env) [ec2-user ~]$ pip install boto3
  5. Führe den folgenden Befehl aus, um Python auszuführen:

    (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. Führe den folgenden Befehl aus, um die Boto3-Bibliothek zu importieren und zu überprüfen, ob sie funktioniert:

    >>> import boto3                          # no error    

    In der folgenden Beispielausgabe sind alle Amazon Simple Storage Service (Amazon S3) Buckets innerhalb des AWS-Kontos aufgeführt:

    >>> 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. Um die virtuelle Umgebung zu verlassen, führe den folgenden Befehl aus:

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. Um die virtuelle Umgebung automatisch zu aktivieren, wenn du dich anmeldest, führe den folgenden Befehl aus, um die Datei ~/.bashrc zu aktualisieren:

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc

    Hinweis: Ersetze my_app durch den Namen des Anwendungsverzeichnisses. Der vorhergehende Befehl aktiviert automatisch die virtuelle Umgebung.

  9. Führe den folgenden Befehl aus, um die Bash-Umgebung der Umgebung neu zu laden:

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

    Beispielausgabe:

    (env) [ec2-user ~]$

    Hinweis: Das (env) zeigt, dass du die virtuelle Umgebung korrekt aktiviert hast. Jetzt kannst du die Python-Umgebung standardmäßig in allen zukünftigen SSH-Sitzungen und wenn du den Befehl source ~/bashrc ausführst, verwenden.

Ähnliche Informationen

Die Instance-Software auf der AL2-Instance aktualisieren

Eine EC2-Instance mithilfe des Assistenten zum Starten von Instances in der Konsole starten

Virtualenv auf der Website der Python Packaging Authority (PYPA)

AWS OFFICIALAktualisiert vor 8 Monaten