Bug: AttributeError: ... 'types' has no attribute 'GcsSource' al usar google-cloud-texttospeech con protobuf 6.x
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