Especifique as dependências da sua aplicação para as versões do Python suportadas através de qualquer uma das seguintes abordagens:
Use um ficheiro
requirements.txtno diretório raiz. Este ficheiro tem de estar no mesmo diretório que o ficheiromain.pyque contém o seu código-fonte. O ficheirorequirements.txtcontém uma linha por pacote. Cada linha contém o nome do pacote e, opcionalmente, a versão pedida. Para evitar que a compilação seja afetada por alterações à versão das dependências, considere afixar os pacotes de dependências a uma versão específica.Segue-se um exemplo de um ficheiro
requirements.txt:functions-framework requests==2.20.0 numpyUse um ficheiro
pyproject.tomlpara especificar dependências. Se gerir as dependências da sua aplicação num ficheiropyproject.tomlem vez do ficheirorequirements.txt, o buildpack do Python determina o gestor de pacotes com base na configuração que especificar no ficheiropyproject.toml. Para mais informações, consulte o artigo Implemente aplicações Python com um ficheiropyproject.toml.Se a sua aplicação usar o ficheiro
pyproject.tomle o ficheirorequirements.txt, o ficheirorequirements.txttem precedência.Segue-se um exemplo de um ficheiro
pyproject.toml:[project] name = "demo-app" version = "0.1.0" description = "" requires-python = ">=3.10" dependencies = [ "flask>=3.1.1", "gunicorn>=23.0.0", ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta"
Empacote as dependências locais juntamente com a sua função.
A especificação de dependências através da norma
Pipfile/Pipfile.locknão é suportada. O seu projeto não deve incluir estes ficheiros.Se usar um ficheiro
requirements.txtpara gerir dependências, o Cloud Run instala o Functions Framework em seu nome quando cria uma função. No entanto, recomendamos que inclua o Functions Framework como uma dependência explícita para evitar discrepâncias.Quando usa um ficheiro
pyproject.toml, tem de incluir o Functions Framework como uma dependência, porque o Cloud Run não o instala em seu nome.
Gestor de pacotes
Se gerir as suas dependências através de um requirements.txt file, o gestor de pacotes predefinido varia consoante a versão do Python que configurar.
Se usar um ficheiro pyproject.toml para gerir dependências em vez de um ficheiro requirements.txt, o buildpack do Python determina o gestor de pacotes com base nas definições de configuração no ficheiro pyproject.toml. O buildpack suporta os gestores de pacotes pip, uv e Poetry. Para mais informações, consulte o artigo Implemente aplicações Python com um ficheiro
pyproject.toml.
Python 3.14 e posteriores
A partir da versão 3.14 (pré-visualização) do Python e posteriores, o buildpack do Python usa o gestor de pacotes uv como o instalador predefinido para as dependências que especificar no ficheiro requirements.txt.
Para usar o pip como gestor de pacotes,
configure a variável de ambiente GOOGLE_PYTHON_PACKAGE_MANAGER="pip".
Execute o comando gcloud run deploy para definir a variável de ambiente do gestor de pacotes como pip:
gcloud run deploy SERVICE --source . \
--set-build-env-vars=GOOGLE_PYTHON_PACKAGE_MANAGER=pip
Substitua SERVICE pelo nome do seu serviço do Cloud Run.
Python 3.13 e anteriores
Para a versão 3.13 e anteriores do Python, o buildpack do Python usa o gestor de pacotes pip para instalar as dependências que define no ficheiro requirements.txt.
Para usar uv (pré-visualização) como gestor de pacotes,
configure a variável de ambiente GOOGLE_PYTHON_PACKAGE_MANAGER="uv".
Execute o comando gcloud beta run deploy para definir a variável de ambiente do gestor de pacotes como uv:
gcloud beta run deploy SERVICE --source . \
--set-build-env-vars=GOOGLE_PYTHON_PACKAGE_MANAGER=uv
Substitua SERVICE pelo nome do seu serviço do Cloud Run.
Empacote dependências locais
Empacote e implemente dependências juntamente com a sua função. Esta abordagem é útil se a sua dependência não estiver disponível quando usa um gestor de pacotes suportado ou se o acesso à Internet do seu ambiente do Cloud Run estiver restrito.
Também pode usar um ficheiro requirements.txt para especificar dependências adicionais que não foram incluídas no pacote juntamente com a função.
Por exemplo, pode usar a seguinte estrutura de diretórios:
myfunction/
├── main.py
└── localpackage/
├── __init__.py
└── script.py
Importe o código de localpackage através da seguinte declaração import:
# code in main.py
from localpackage import script
Esta abordagem não executa ficheiros setup.py. Pode agrupar os pacotes com esses ficheiros, mas o pacote pode não ser executado corretamente nas funções do Cloud Run.
Dependências copiadas
As dependências copiadas são dependências cuja origem está incluída diretamente no pacote de código-fonte e são recompiladas juntamente com o seu próprio código.
Use a variável de ambiente de compilação GOOGLE_VENDOR_PIP_DEPENDENCIES para criar dependências pip copiadas e evitar instalá-las durante a implementação.
Crie dependências copiadas
Certifique-se de que o python3 está instalado no seu sistema de desenvolvimento.
Declare as dependências da sua aplicação num ficheiro
requirements.txtno diretório raiz da sua árvore de desenvolvimento.Declare o Functions Framework como um requisito incluindo
functions-frameworknuma linha separada no ficheirorequirements.txt.Transfira as dependências da sua função para o diretório local. Os passos para o fazer dependem de a dependência ser um ficheiro Python wheel (*.whl) ou um ficheiro tar (*.tar.gz).
Se a dependência for um wheel do Python (*.whl), transfira-o para o diretório raiz da sua estrutura de desenvolvimento com este comando pip:
python3 -m pip download -r requirements.txt --only-binary=:all: \ -d DIRECTORY \ --python-version PYTHON_RUNTIME_VERSION \ --platform manylinux2014_x86_64 \ --implementation cpSubstitua o seguinte:
- DIRECTORY: o nome do diretório local para o qual transferir.
- PYTHON_RUNTIME_VERSION: a versão do Python a usar para verificações de compatibilidade. Por exemplo,
314para Python 3.14.
Esta versão tem de corresponder a um dos tempos de execução do Python suportados.
A estrutura de diretórios resultante deve ter o seguinte aspeto:
myfunction/ ├── main.py └── requirements.txt └── DIRECTORY ├── dependency1.whl └── dependency2.whl
Se a dependência for um ficheiro tar (*.tar.gz):
Se a dependência estiver escrita em Python, use o pip para a transferir:
python3 -m pip download -r requirements.txt \ -d DIRECTORYSe uma dependência consistir em código escrito em C ou C++, transfira e compile o código separadamente.
Implemente a função e as respetivas dependências copiadas:
gcloud functions deploy FUNCTION_NAME \ --runtime PYTHON_RUNTIME_NAME \ --set-build-env-vars GOOGLE_VENDOR_PIP_DEPENDENCIES=DIRECTORYSubstitua o seguinte:
- FUNCTION_NAME: o nome da função que está a implementar.
- PYTHON_RUNTIME_NAME: o nome de um dos tempos de execução do Python suportados para executar a função implementada, por exemplo, python311. Tem de ser a mesma versão de tempo de execução do Python que usou no seu ambiente de desenvolvimento local.
- DIRECTORY: o nome do diretório que contém as suas dependências copiadas.
Para ver mais detalhes sobre a utilização de buildpacks, consulte o artigo Crie uma função com buildpacks.
Use dependências privadas
Pode usar dependências privadas do Artifact Registry ou de outros repositórios.
Dependências privadas do Artifact Registry
Um repositório Python do Artifact Registry aloja dependências privadas para a sua função Python. Quando implementa no Cloud Run, o processo de compilação gera automaticamente credenciais do Artifact Registry para a conta de serviço do Cloud Build.
Inclua o URL do Artifact Registry no seu requirements.txt sem
gerar credenciais adicionais. Por exemplo:
--index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
Se a sua compilação precisar de vários repositórios, use um repositório virtual do Artifact Registry para controlar com segurança a ordem em que o pip pesquisa os seus repositórios.
Dependências privadas de outros repositórios
Os buildpacks instalam dependências num ambiente do Cloud Build que não oferece acesso a chaves SSH. Copie os pacotes alojados em repositórios que requerem autenticação baseada em SSH e carregue os pacotes com o código do seu projeto.
Use o comando pip install com a flag -t DIRECTORY para copiar dependências privadas para um diretório local antes de implementar a sua app, da seguinte forma:
- Copie a dependência para um diretório local:
pip install -t DIRECTORY DEPENDENCY
- Adicione um ficheiro
__init__.pyvazio ao diretórioDIRECTORYpara o transformar num módulo. - Importe deste módulo para usar a sua dependência:
import DIRECTORY.DEPENDENCY
Pacotes pré-instalados
O buildpack do Python instala os seguintes pacotes Python quando implementa a sua função. Se estiver a usar algum destes pacotes no código da função, inclua as seguintes versões no ficheiro requirements.txt:
Para evitar problemas com as atualizações da versão de dependência, afixe o pacote a uma versão específica.
O buildpack do Python instala os seguintes pacotes fixados numa versão específica:
pip(versão mais recente)setuptools(versão mais recente)wheel(determinado pelos requisitos dos produtos)
O tempo de execução do Python também inclui vários pacotes do sistema no ambiente de execução.