Como especificar dependências no Python

Há duas maneiras de especificar dependências para o Cloud Functions escritas em Python: usando o arquivo requirements.txt do gerenciador de pacotes requirements.txt (em inglês) ou empacotando dependências locais junto com a função.

Como especificar dependências com pip

As dependências em Python são gerenciadas com pip e expressas em um arquivo de metadados chamado requirements.txt. Esse arquivo precisa estar no mesmo diretório do arquivo main.py que contém o código da função.

Quando você implanta a função, o Cloud Functions faz o download e instala as dependências declaradas no arquivo requirements.txt usando pip.

O arquivo requirements.txt contém uma linha por pacote. Cada linha contém o nome do pacote e, como opção, a versão solicitada. Para mais detalhes, consulte a referência do requirements.txt (em inglês).

Este é um arquivo requirements.txt de exemplo:

requests==2.20.0
numpy

Como empacotar dependências locais

Se sua dependência não estiver disponível através do gerenciador de pacotes pip, você poderá empacotar e distribuir a dependência junto com sua função. Por exemplo, você pode usar uma estrutura de diretório como a seguinte:

myfunction/
├── main.py
└── mylocalpackage/
    ├── __init__.py
    └── myscript.py

E depois usar o código da dependência local, mylocalpackage:

from mylocalpackage.myscript import foo

Como usar dependências privadas

As dependências são instaladas em um ambiente Cloud Build, que não fornece acesso a chaves SSH. Os pacotes hospedados em repositórios que requerem autenticação baseada em SSH precisam ser fornecidos e carregados junto com o código do seu projeto, conforme descrito na seção anterior.

É possível usar o comando pip install com a sinalização -t DIRECTORY para copiar as dependências privadas em um diretório local antes de implantar o app, conforme demonstrado a seguir:

  1. Copie sua dependência em um diretório local:

    pip install -t DIRECTORY DEPENDENCY
  2. Adicione um arquivo __init__.py vazio ao diretório DIRECTORY para transformá-lo em um módulo.

  3. Importe deste módulo para usar sua dependência:

    import DIRECTORY.DEPENDENCY

Pacotes pré-instalados

Os seguintes pacotes do Python são instalados automaticamente junto com sua função durante a implantação. Se você estiver usando qualquer um desses pacotes no seu código de função, recomendamos incluir as seguintes versões no arquivo requirements.txt:

click==6.7
Flask==1.0.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
pip==18.0
requests==2.21.0
setuptools==40.2.0
Werkzeug==0.14.1
wheel==0.31.1

Além disso, o ambiente de execução do Python inclui vários pacotes do sistema no ambiente de execução. Se a função usar uma dependência que exija um pacote que não esteja listado, será possível solicitá-lo.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud Functions Documentation