

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Especificação de dependências usando um arquivo de requisitos no Elastic Beanstalk
<a name="python-configuration-requirements"></a>

Este tópico descreve como configurar sua aplicação para instalar outros pacotes Python necessários. Um aplicativo em Python típico tem dependências em outros pacotes Python de terceiros. Com a plataforma Python do Elastic Beanstalk, você tem várias maneiras de especificar pacotes Python dos quais sua aplicação depende.

## Utilizar `pip` e `requirements.txt`
<a name="python-configuration-requirements.txt"></a>

A ferramenta padrão para instalar pacotes Python é `pip`. Ele tem um recurso que permite especificar todos os pacotes necessários (e suas versões) em um único arquivo de requisitos. Para obter mais informações sobre o arquivo de requisitos, consulte [Formato do arquivo de requisitos](https://pip.pypa.io/en/latest/reference/requirements-file-format/#requirements-file-format) no site de documentação do pip.

Crie um arquivo chamado `requirements.txt` e coloque-o no diretório de nível superior do pacote de origem. Veja a seguir um exemplo do arquivo `requirements.txt` para Django.

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

Em seu ambiente de desenvolvimento, use o comando `pip freeze` para gerar o arquivo de requisitos.

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

Para garantir que o arquivo de requisitos contenha apenas os pacotes realmente usados pelo aplicativo, use um [ambiente virtual](python-development-environment.md#python-common-setup-venv) que tenha somente esses pacotes instalados. Fora de um ambiente virtual, a saída de `pip freeze` incluirá todos os pacotes do `pip` instalados na máquina de desenvolvimento, bem como aqueles que acompanham o sistema operacional.

**nota**  
Nas versões da plataforma Python da AMI do Amazon Linux, o Elastic Beanstalk não é compatível com Pipenv nem Pipfiles. Se você usar Pipenv para gerenciar as dependências do aplicativo, execute o seguinte comando para gerar um arquivo `requirements.txt`.  

```
~/my-app$ pipenv lock -r > requirements.txt
```
Para saber mais, consulte [Gerar um requirements.txt](https://pipenv.readthedocs.io/en/latest/advanced/#generating-a-requirements-txt) na documentação do Pipenv.

## Usar Pipenv e `Pipfile`
<a name="python-configuration-requirements.pipenv"></a>

Pipenv é uma ferramenta moderna de empacotamento Python. Ele combina a instalação do pacote com a criação e gerenciamento de um arquivo de dependência e um virtualenv para o seu aplicativo. Para obter mais informações, consulte [Pipenv: Python Dev Workflow for Humans](https://pipenv.readthedocs.io/en/latest/).

O Pipenv mantém dois arquivos: 
+ `Pipfile` — Esse arquivo contém vários tipos de dependências e requisitos.
+ `Pipfile.lock` — Esse arquivo contém um instantâneo da versão que permite compilações determinísticas.

Você pode criar esses arquivos em seu ambiente de desenvolvimento e incluí-los no diretório de nível superior do pacote de origem implantado no Elastic Beanstalk. Para obter mais informações sobre esses dois arquivos, consulte [Exemplo de Pipfile e Pipfile.lock](https://pipenv.pypa.io/en/latest/basics/#).



O exemplo a seguir usa o Pipenv para instalar o Django e a framework REST do Django. Esses comandos criam os arquivos `Pipfile` e `Pipfile.lock`.

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

 

## Precedência
<a name="python-configuration-requirements.precedence"></a>

Se você incluir mais de um dos arquivos de requisitos descritos neste tópico, o Elastic Beanstalk usará apenas um deles. A lista a seguir mostra a precedência, em ordem decrescente.

1. `requirements.txt`

1. `Pipfile.lock`

1. `Pipfile`

**nota**  
A partir da versão da plataforma Amazon Linux 2 de 7 de março de 2023, se você fornecer mais de um desses arquivos, o Elastic Beanstalk emitirá uma mensagem do console informando qual dos arquivos de dependência foi usado durante uma implantação.

As etapas a seguir descrevem a lógica que o Elastic Beanstalk segue para instalar as dependências ao implantar uma instância.
+ Se houver um arquivo `requirements.txt`, usamos o comando `pip install -r requirements.txt`.
+ A partir do lançamento da plataforma Amazon Linux 2 em 7 de março de 2023, se não houver nenhum arquivo `requirements.txt`, mas houver um `Pipfile.lock`, usamos o comando `pipenv sync`. Antes desse lançamento, usamos `pipenv install --ignore-pipfile`.
+ Se não houver um arquivo `requirements.txt` nem um `Pipfile.lock`, mas houver um `Pipfile`, usamos o comando `pipenv install --skip-lock`.
+ Se nenhum dos três arquivos de requisitos for encontrado, não instalaremos nenhuma dependência do aplicativo.