

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Spécification des dépendances à l'aide d'un fichier d'exigences sur Elastic Beanstalk
<a name="python-configuration-requirements"></a>

Cette rubrique décrit comment configurer votre application pour installer les autres packages Python dont elle a besoin. Une application Python classique comporte des dépendances par rapport à d'autres packages Python tiers. Avec la plateforme Elastic Beanstalk Python, vous disposez de plusieurs méthodes pour spécifier les packages Python dont dépend votre application.

## Utilisation de `pip` et `requirements.txt`
<a name="python-configuration-requirements.txt"></a>

L'outil standard pour installer les packages Python est `pip`. Il s'agit d'une fonctionnalité qui vous permet de spécifier tous les packages dont vous avez besoin (ainsi que leurs versions) dans un fichier Requirements unique. Pour plus d'informations sur le fichier d'exigences, consultez [Format du fichier d'exigences](https://pip.pypa.io/en/latest/reference/requirements-file-format/#requirements-file-format) (français non garanti) sur le site web de documentation de pip.

Créez un fichier `requirements.txt` et placez-le dans le répertoire de niveau supérieur de votre solution groupée source. Voici un exemple de fichier `requirements.txt` pour Django.

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

Dans votre environnement de développement, vous pouvez utiliser la commande `pip freeze` pour générer votre fichier Requirements.

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

Pour vous assurer que votre fichier Requirements contient uniquement des packages qui sont réellement utilisés par votre application, utilisez un [environnement virtuel](python-development-environment.md#python-common-setup-venv) sur lequel seuls ces packages sont installés. En dehors d'un environnement virtuel, le résultat de `pip freeze` comprendra tous les packages `pip` installés sur votre ordinateur de développement, y compris ceux livrés avec votre système d'exploitation.

**Note**  
Sur les versions de la plateforme AMI Python Amazon Linux, Elastic Beanstalk ne prend pas en charge nativement Pipenv ou Pipfiles. Si vous utilisez Pipenv pour gérer les dépendances de votre application, exécutez la commande suivante pour générer un fichier `requirements.txt`.  

```
~/my-app$ pipenv lock -r > requirements.txt
```
Pour en savoir plus, consultez [Generating a requirements.txt](https://pipenv.readthedocs.io/en/latest/advanced/#generating-a-requirements-txt) dans la documentation.

## Utilisation de Pipenv et `Pipfile`
<a name="python-configuration-requirements.pipenv"></a>

Pipenv est un outil d'emballage Python moderne. Il combine l'installation de packages avec la création et la gestion d'un fichier de dépendance et d'un environnement virtuel pour votre application. Pour plus d'informations, consultez [Pipenv: Python Dev Workflow for Humans](https://pipenv.readthedocs.io/en/latest/).

Pipenv maintient deux fichiers : 
+ `Pipfile` – Ce fichier contient différents types de dépendances et d'exigences.
+ `Pipfile.lock` – Ce fichier contient un instantané de version qui permet des créations déterministes.

Vous pouvez créer ces fichiers dans votre environnement de développement et les inclure dans le répertoire de premier niveau de la solution groupée source que vous déployez sur Elastic Beanstalk. Pour plus d'informations sur ces deux fichiers, consultez [Exemples de Pipfile et de Pipfile.lock](https://pipenv.pypa.io/en/latest/basics/#) (français non garanti).



L'exemple suivant utilise Pipenv pour installer Django et le framework REST Django. Ces commandes créent les fichiers `Pipfile` et `Pipfile.lock`.

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

 

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

Si vous incluez plusieurs fichiers d'exigences décrits dans cette rubrique, Elastic Beanstalk n'en utilise qu'un. La liste suivante montre la priorité, par ordre décroissant.

1. `requirements.txt`

1. `Pipfile.lock`

1. `Pipfile`

**Note**  
À partir de la version de la plateforme Amazon Linux 2 du 7 mars 2023, si vous fournissez plusieurs de ces fichiers, Elastic Beanstalk émettra un message de console indiquant lequel des fichiers de dépendances a été utilisé lors d'un déploiement.

Les étapes suivantes décrivent la logique suivie par Elastic Beanstalk pour installer les dépendances lors du déploiement d'une instance.
+ S'il existe un fichier `requirements.txt`, nous utilisons la commande `pip install -r requirements.txt`.
+ À partir de la version de la plateforme Amazon Linux 2 du 7 mars 2023, s'il n'y a pas de fichier `requirements.txt`, mais qu'il y a un fichier `Pipfile.lock`, nous utilisons la commande `pipenv sync`. Avant cette version, nous utilisions `pipenv install --ignore-pipfile`.
+ S'il n'y a ni fichier `requirements.txt` ni fichier `Pipfile.lock`, mais qu'il y en a un fichier `Pipfile`, on utilise la commande `pipenv install --skip-lock`.
+ Si aucun des trois fichiers d'exigences n'est trouvé, nous n'installons aucune dépendance d'application.