google-cloud-python icon indicating copy to clipboard operation
google-cloud-python copied to clipboard

Bug: AttributeError: ... 'types' has no attribute 'GcsSource' al usar google-cloud-texttospeech con protobuf 6.x

Open juanmanuelperezdiazar72ar opened this issue 2 months ago • 0 comments

Determine this is the right repository

  • [x] I determined this is the correct repository in which to report this bug.

Summary of the issue

Cuerpo del Reporte de Error Descripción del Problema He estado intentando usar la biblioteca google-cloud-texttospeech en un entorno de Python 3.10 limpio (creado con .venv).

Después de instalar la última versión de la biblioteca (pip install google-cloud-texttospeech), cualquier intento de usar las clases "modernas" (del módulo v1.types) falla con un AttributeError, específicamente:

AttributeError: module 'google.cloud.texttospeech_v1.types' has no attribute 'GcsSource'

Esto sugiere que la biblioteca google-cloud-texttospeech (v2.33.0+) tiene una incompatibilidad con su propia dependencia protobuf (v6.x), que se instala automáticamente. El módulo types no se está cargando correctamente.

Pasos para Reproducir el Error En un sistema Windows, instalar Python 3.10.11.

Crear un entorno virtual limpio: python -m venv .venv

Activar el entorno: ..venv\Scripts\activate

Instalar la última versión de la biblioteca de Text-to-Speech: pip install google-cloud-texttospeech

Revisar las bibliotecas instaladas (esto instalará protobuf v6.x, ej: 6.33.0).

Ejecutar el siguiente código de Python:

Python

Script mínimo para reproducir el error

from google.cloud import texttospeech_v1

try: # Esta es la línea que falla gcs_source = texttospeech_v1.types.GcsSource(uri="gs://mi-bucket/mi-archivo.txt") print("ÉXITO: Se encontró la clase GcsSource.")

except Exception as e: print(f"--- ¡ERROR! ---") print(f"Ocurrió un error: {e}") Resultado Esperado El script debería encontrar la clase GcsSource e imprimir:ÉXITO: Se encontró la clase GcsSource.

Resultado Obtenido (El Error) El script falla con el siguiente error:--- ¡ERROR! ---Ocurrió un error: module 'google.cloud.texttospeech_v1.types' has no attribute 'GcsSource'

Detalles del Entorno Sistema Operativo: Windows

Python: 3.10.11

Biblioteca google-cloud-texttospeech: 2.33.0 (o la última versión)

Biblioteca protobuf: 6.33.0 (o la última versión 6.x)

Única Solución Encontrada (Workaround) El problema SÍ se soluciona si se crea un .venv limpio y se fuerza la instalación de una "Trifecta Antigua" de bibliotecas, lo que demuestra que es un problema de regresión en las dependencias nuevas:

pip install protobuf==4.25.3

pip install google-cloud-texttospeech==2.16.2

pip install grpcio-status==1.48.2

Y luego, se debe usar el "código antiguo" que apunta a v1beta1:gcs_source = texttospeech_v1beta1.types.GcsSource(...)

Por favor, ¿podrían revisar la incompatibilidad entre google-cloud-texttospeech (moderna) y protobuf (moderna)? Gracias.

API client name and version

No response

Reproduction steps: code

file: main.py

   def reproduce():
    # complete code here

Reproduction steps: supporting files

file: mydata.csv

alpha,1,3
beta,2,5

Reproduction steps: actual results

file: output.txtmydata.csv

Calculated: foo

Reproduction steps: expected results

file: output.txtmydata.csv

Calculated: bar

OS & version + platform

No response

Python environment

No response

Python dependencies

No response

Additional context

No response