Especifica las dependencias de la aplicación para las versiones de Python compatibles con cualquiera de los siguientes enfoques:
Usa un archivo
requirements.txten el directorio raíz. Este archivo debe estar en el mismo directorio que el archivomain.pyque contiene el código fuente. El archivorequirements.txtcontiene una línea por paquete. Cada línea contiene el nombre del paquete y, de manera opcional, la versión solicitada. Para evitar que la compilación se vea afectada por los cambios en la versión de la dependencia, considera fijar los paquetes de dependencias a una versión específica.El siguiente es un archivo
requirements.txtde ejemplo:functions-framework requests==2.20.0 numpyUsa un archivo
pyproject.tomlpara especificar dependencias. Si administras las dependencias de tu aplicación en un archivopyproject.tomlen lugar del archivorequirements.txt, el paquete de compilación de Python determina el administrador de paquetes según la configuración que especifiques en el archivopyproject.toml. Para obtener más información, consulta Implementa aplicaciones de Python con un archivopyproject.tomlfile.Si tu aplicación usa el archivo
pyproject.tomly el archivorequirements.txt, este último tiene prioridad.requirements.txtEl siguiente es un archivo
pyproject.tomlde ejemplo:[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"
Empaqueta las dependencias locales junto con tu función.
La especificación de dependencias que usa el estándar
Pipfile/Pipfile.lockno es compatible. Tu proyecto no debe incluir estos archivos.Si usas un
requirements.txtarchivo para administrar dependencias, Cloud Run instala Functions Framework en tu nombre cuando creas una función. Sin embargo, te recomendamos que incluyas Functions Framework como una dependencia explícita para evitar discrepancias.Cuando usas un archivo
pyproject.toml, debes incluir Functions Framework como una dependencia porque Cloud Run no lo instala en tu nombre.
Administrador de paquetes
Si administras tus dependencias con un requirements.txt file, el administrador de paquetes
predeterminado varía según la versión de Python que configures.
Si usas un archivo pyproject.toml para administrar dependencias en lugar de un archivo requirements.txt, el paquete de compilación de Python determina el administrador de paquetes según la configuración que especifiques en el archivo pyproject.toml. El paquete de compilación admite los administradores de paquetes pip, uv y Poetry. Para obtener más información, consulta Implementa aplicaciones de Python con un
pyproject.toml archivo.
Python 3.14 y versiones posteriores
A partir de la versión 3.14 de Python y versiones posteriores, el paquete de compilación de Python
usa el administrador de paquetes uv
como el instalador predeterminado para las dependencias que especificas
en tu archivo requirements.txt.
Para usar pip como administrador de paquetes,
configura la variable de entorno GOOGLE_PYTHON_PACKAGE_MANAGER="pip".
Ejecuta el comando gcloud run deploy para establecer la variable de entorno del administrador de paquetes en pip:
gcloud run deploy SERVICE --source . \
--set-build-env-vars=GOOGLE_PYTHON_PACKAGE_MANAGER=pip
Reemplaza SERVICE por el nombre de tu servicio de Cloud Run.
Python 3.13 y versiones anteriores
Para la versión 3.13 de Python y versiones anteriores, el paquete de compilación de Python
usa el administrador de paquetes pip
para instalar las dependencias que definas en el archivo
requirements.txt.
Para usar uv como administrador de paquetes,
configura la variable de entorno GOOGLE_PYTHON_PACKAGE_MANAGER="uv".
Ejecuta el comando gcloud run deploy para establecer la variable de entorno del administrador de paquetes en uv:
gcloud run deploy SERVICE --source . \
--set-build-env-vars=GOOGLE_PYTHON_PACKAGE_MANAGER=uv
Reemplaza SERVICE por el nombre de tu servicio de Cloud Run.
Empaqueta las dependencias locales
Empaqueta e implementa dependencias junto con tu función. Este enfoque es útil si tu dependencia no está disponible cuando usas un administrador de paquetes compatible o si el acceso a Internet del entorno de Cloud Run está restringido.
También puedes usar un archivo requirements.txt para especificar dependencias adicionales que no empaquetaste junto con tu función.
Por ejemplo, podrías usar la siguiente estructura de directorios:
myfunction/
├── main.py
└── localpackage/
├── __init__.py
└── script.py
Importa el código de localpackage con la siguiente sentencia import:
# code in main.py
from localpackage import script
Este enfoque no ejecutará ningún archivo setup.py. Puedes agrupar los paquetes con esos archivos, pero es posible que el paquete no se ejecute correctamente en Cloud Run Functions.
Dependencias copiadas
Las dependencias copiadas son dependencias cuyos orígenes se incluyen de forma directa en tu paquete de código fuente y que vuelven a compilarse junto con tu propio código.
Usa la variable de entorno GOOGLE_VENDOR_PIP_DEPENDENCIES para crear dependencias de pip copiadas y evitar instalarlas durante la implementación.
Crea dependencias copiadas
Asegúrate de que python3 esté instalado en tu sistema de desarrollo.
Declara las dependencias de la aplicación en un archivo
requirements.txtubicado en el directorio raíz del árbol de desarrollo.Declara Functions Framework como requisito incluyendo
functions-frameworken otra línea del archivorequirements.txt.Descarga las dependencias de la función en el directorio local. Los pasos para hacerlo dependen de si la dependencia es un archivo wheel de Python (*.whl) o un archivo tar (*.tar.gz).
Si la dependencia es un archivo wheel de Python (*.whl), descárgala en el directorio raíz del árbol de desarrollo con 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 cpReemplaza lo siguiente:
- DIRECTORY: el nombre del directorio local en el que se descargará.
- PYTHON_RUNTIME_VERSION: es la versión de Python que se usa para
las verificaciones de compatibilidad. Por ejemplo,
314para Python 3.14.
Esta versión debe coincidir con uno de los entornos de ejecución de Python compatibles.
La estructura del directorio resultante debería tener el aspecto siguiente:
myfunction/ ├── main.py └── requirements.txt └── DIRECTORY ├── dependency1.whl └── dependency2.whl
Si la dependencia es un archivo tar (*.tar.gz):
Si la dependencia está escrita en Python, usa pip para descargarla:
python3 -m pip download -r requirements.txt \ -d DIRECTORYSi una dependencia consiste en código escrito en C o C++, descarga y compila el código por separado.
Implementa la función y sus dependencias copiadas:
gcloud functions deploy FUNCTION_NAME \ --runtime PYTHON_RUNTIME_NAME \ --set-build-env-vars GOOGLE_VENDOR_PIP_DEPENDENCIES=DIRECTORYReemplaza lo siguiente:
- FUNCTION_NAME: Es el nombre de la función que estás implementando.
- PYTHON_RUNTIME_NAME: es el nombre de uno de los entornos de ejecución de Python compatibles en los que se ejecutará la función implementada, por ejemplo, python311. Debe ser la misma versión del entorno de ejecución de Python que usaste en tu entorno de desarrollo local.
- DIRECTORY: Es el nombre del directorio que contiene las dependencias copiadas.
Para obtener más detalles sobre cómo se usan los buildpacks, consulta Compila una función con buildpacks.
Usa dependencias privadas
Puedes usar dependencias privadas de Artifact Registry o de otros repositorios.
Dependencias privadas de Artifact Registry
Un repositorio de Python para Artifact Registry
aloja dependencias privadas
para la función de Python. Cuando realizas una implementación en Cloud Run,
el proceso de compilación generará automáticamente las credenciales de Artifact Registry para la
cuenta de servicio de Cloud Build.
Incluye la URL de Artifact Registry en la requirements.txt sin generar credenciales adicionales. Por ejemplo:
--index-url REPOSITORY_URL
sampleapp
Flask==0.10.1
google-cloud-storage
Si la compilación necesita varios repositorios, usa un repositorio virtual de Artifact Registry para controlar de forma segura el orden en que pip busca los repositorios.
Dependencias privadas de otros repositorios
Los buildpacks instalan dependencias en un entorno de compilación de Cloud Build que no proporciona acceso a las llaves SSH. Copia los paquetes que alojas en repositorios que requieren una autenticación basada en SSH y sube los paquetes con el código del proyecto.
Puedes usar el comando pip install con el
-t DIRECTORY marcador para copiar las dependencias privadas en
un directorio local antes de implementar tu aplicación, de la siguiente manera:
- Copia tu dependencia en un directorio local:
pip install -t DIRECTORY DEPENDENCY
- Agrega un archivo
__init__.pyvacío al directorioDIRECTORYpara convertirlo en un módulo. - Importa desde este módulo para usar tu dependencia:
import DIRECTORY.DEPENDENCY
Paquetes preinstalados
El paquete de compilación de Python instala los siguientes paquetes de Python cuando implementas tu función. Si usas alguno de estos paquetes en el código de la función, incluye las siguientes versiones en el archivo requirements.txt:
Para evitar problemas con las actualizaciones de la versión de dependencia, fija el paquete a una versión específica.
El paquete de compilación de Python instala los siguientes paquetes fijados a una versión específica:
pip(versión más reciente)setuptools(versión más reciente)wheel(determinado por los requisitos del producto)
El entorno de ejecución de Python también incluye una serie de paquetes del sistema en el entorno de ejecución.