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
Um aplicativo em Python típico tem dependências em outros pacotes Python de terceiros. Com a plataforma Python do Elastic Beanstalk, há algumas maneiras de especificar pacotes Python dos quais depende a aplicação.
Utilizar pip
e requirements.txt
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
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 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
Usar Pipenv e Pipfile
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
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
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
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.
-
requirements.txt
-
Pipfile.lock
-
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 comandopip 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 umPipfile.lock
, usamos o comandopipenv sync
. Antes desse lançamento, usamospipenv install --ignore-pipfile
. -
Se não houver um arquivo
requirements.txt
nem umPipfile.lock
, mas houver umPipfile
, usamos o comandopipenv install --skip-lock
. -
Se nenhum dos três arquivos de requisitos for encontrado, não instalaremos nenhuma dependência do aplicativo.