GoogleCloudPlatform / GoogleCloudPlatform/functions-framework-python

functions-framework breaks import paths for the google-cloud-functions SDK package

Abierto
#184 3 comentarios 1 reacción 0 asignados Ver en GitHub
bug good first issue P3
Lenguaje dominante
Python
Estrellas
968
Forks
128
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

functions-framework is incompatible with the [google-cloud-functions](https://pypi.org/project/google-cloud-functions/) SDK package, unless google-cloud-functions is installed with a separate install command AFTER functions-framework is installed.

As I understand it, this is not possible to do within the context of Google Cloud Functions, where packages get installed automatically from the requirements.txt file.

The reason is that **functions-framework overwrites several important files in google/cloud/functions_v1, google/cloud/functions, and google/cloud/functions_v1beta2 that are required to make the google-cloud-functions SDK package work as intended.**

For example: functions-framework overwrites `google/cloud/functions_v1/__init__.py` upon install, which breaks the ability to import packages in the normal, documented ways.

Steps to reproduce:

1. create a new python 3.9 environment:

2. Run: `pip install google-cloud-functions==1.6.0 functions-framework==3.0.0`

3. Then execute:
```python
from google.cloud import functions_v1
functions_v1.CloudFunctionsServiceClient()
```

This will raise:
`AttributeError: module 'google.cloud.functions_v1' has no attribute 'CloudFunctionsServiceClient'`

Edit:
This means that none of the sample code in the docs will work, since they all rely on the imported members from `google/cloud/functions_v1/__init__.py`. Example below:
https://cloud.google.com/python/docs/reference/cloudfunctions/latest/google.cloud.functions_v1.services.cloud_functions_service.CloudFunctionsServiceClient#google_cloud_functions_v1_services_cloud_functions_service_CloudFunctionsServiceClient_create_function

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.