

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Angeben von Abhängigkeiten mithilfe einer Anforderungsdatei auf Elastic Beanstalk
<a name="python-configuration-requirements"></a>

In diesem Thema wird beschrieben, wie Sie Ihre Anwendung für die Installation anderer Python Python-Pakete konfigurieren. Eine typische Python-Anwendung weist Abhängigkeiten zu anderen Python-Paketen von Drittanbietern auf. Mit der Python-Plattform von Elastic Beanstalk haben Sie mehrere Möglichkeiten, Python-Pakete anzugeben, von denen Ihre Anwendung abhängt.

## Verwendung von `pip` und `requirements.txt`
<a name="python-configuration-requirements.txt"></a>

Das Standardwerkzeug für die Installation von Python-Paketen ist `pip`. Es hat eine Funktion, mit der Sie alle benötigten Pakete (und deren Versionen) in einer einzelnen Anforderungsdatei spezifizieren können. Weitere Informationen zur Anforderungsdatei finden Sie unter [Format der Anforderungsdatei](https://pip.pypa.io/en/latest/reference/requirements-file-format/#requirements-file-format) in der Website zur pip-Dokumentation.

Erstellen Sie eine Datei mit dem Namen `requirements.txt`, und speichern Sie diese im höchsten Verzeichnis Ihres Quell-Bundles. Das folgende Beispiel zeigt eine `requirements.txt`-Beispieldatei für Django.

```
Django==2.2
mysqlclient==2.0.3
```

In der Entwicklungsumgebung können Sie die Anforderungsdatei mit dem Befehl `pip freeze` generieren.

```
~/my-app$ pip freeze > requirements.txt
```

Damit sichergestellt ist, dass die Anforderungsdatei nur die tatsächlich von der Anwendung genutzten Pakete enthält, sollten Sie eine [virtuelle Umgebung](python-development-environment.md#python-common-setup-venv) verwenden, in der nur diese Pakete installiert sind. Außerhalb einer virtuellen Umgebung sind in der Ausgabe von `pip freeze` alle `pip`-Pakete enthalten, die auf dem Entwicklungscomputer installiert sind, darunter auch solche, die mit dem Betriebssystem ausgeliefert wurden.

**Anmerkung**  
Bei Amazon Linux AMI Python-Plattformversionen unterstützt Elastic Beanstalk Pipenv oder Pipfiles nicht nativ. Wenn Sie mit Pipenv Abhängigkeiten Ihrer Anwendung verwalten, führen Sie den folgenden Befehl aus, um eine `requirements.txt`-Datei zu generieren.  

```
~/my-app$ pipenv lock -r > requirements.txt
```
Weitere Informationen finden Sie unter [Generating a requirements.txt (Generieren einer Anforderungen.txt)](https://pipenv.readthedocs.io/en/latest/advanced/#generating-a-requirements-txt) in der Pipenv-Dokumentation.

## Verwendung von Pipenv und `Pipfile`
<a name="python-configuration-requirements.pipenv"></a>

Pipenv ist ein moderneres Python-Verpackungs-Tool. Es kombiniert die Paketinstallation mit der Erstellung und Verwaltung einer Abhängigkeitsdatei und einem virtualenv für Ihre Anwendung. Weitere Informationen finden Sie unter [Pipenv: Python Dev Workflow for Humans (Pipenv: Python Dev Workflow für Menschen)](https://pipenv.readthedocs.io/en/latest/).

Pipenv verwaltet zwei Dateien: 
+ `Pipfile` – Diese Datei enthält verschiedene Arten von Abhängigkeiten und Anforderungen.
+ `Pipfile.lock` – Diese Datei enthält einen Versions-Snapshot, der deterministische Builds ermöglicht.

Sie können die entsprechenden Dateien in Ihrer Entwicklungsumgebung erstellen und in das oberste Verzeichnis des Quellpakets aufnehmen, das Sie in Elastic Beanstalk bereitstellen. Weitere Informationen zu diesen beiden Dateien finden Sie unter [Beispiel für Pipfile und Pipfile.lock](https://pipenv.pypa.io/en/latest/basics/#).



Im folgenden Beispiel wird Pipenv verwendet, um Django und das Django REST-Framework zu installieren. Diese Befehle erstellen die Dateien `Pipfile` und `Pipfile.lock`.

```
~/my-app$ pipenv install django
~/my-app$ pipenv install djangorestframework
```

 

## Precedence
<a name="python-configuration-requirements.precedence"></a>

Wenn Sie mehr als eine der hier beschriebenen Anforderungsdateien hinzufügen, wird Elastic Beanstalk nur eine davon verwenden. Die folgende Liste zeigt die Rangfolge in absteigender Reihenfolge.

1. `requirements.txt`

1. `Pipfile.lock`

1. `Pipfile`

**Anmerkung**  
Ab der Amazon-Linux-2-Plattformversion vom 7. März 2023 gibt Elastic Beanstalk eine Konsolenmeldung aus, die angibt, welche der Abhängigkeitsdateien während einer Bereitstellung verwendet wurde, wenn Sie mehr als eine dieser Dateien bereitstellen.

In den folgenden Schritten wird die Logik beschrieben, der Elastic Beanstalk folgt, um die Abhängigkeiten zu installieren, wenn es eine Instance bereitstellt.
+ Wenn es eine `requirements.txt`-Datei gibt, verwenden wir den Befehl `pip install -r requirements.txt`.
+ Ab der Amazon Linux 2-Plattformversion vom 7. März 2023 verwenden wir den Befehl `pipenv sync`, wenn es keine `requirements.txt`-Datei gibt, aber eine `Pipfile.lock`. Vor dieser Veröffentlichung haben wir `pipenv install --ignore-pipfile` verwendet.
+ Wenn es weder eine `requirements.txt`-Datei noch eine `Pipfile.lock` gibt, aber eine `Pipfile`, verwenden wir den Befehl `pipenv install --skip-lock`.
+ Wenn keine der drei Anforderungsdateien gefunden wird, installieren wir keine Anwendungsabhängigkeiten.