googletrans dejó de funcionar con el error 'NoneType' El objeto no tiene el atributo 'grupo'

Resuelto steveJ asked hace 54 años • 18 respuestas

Lo estuve intentando googletransy funcionó bastante bien. Desde esta mañana comencé a recibir el siguiente error. Revisé varias publicaciones de stackoverflow y otros sitios y descubrí que probablemente mi IP esté prohibida para usar el servicio por algún tiempo. Intenté utilizar varios proveedores de servicios de Internet que tienen diferentes IP y sigo teniendo el mismo problema. También intenté usarlo googletransen diferentes computadoras portátiles, pero sigue siendo el mismo problema. ¿Está googletransel paquete roto o algo que hizo Google al final?

>>> from googletrans import Translator
>>> translator = Translator()
>>> translator.translate('안녕하세요.')

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    translator.translate('안녕하세요.')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/client.py", line 172, in translate
    data = self._translate(text, dest, src)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/client.py", line 75, in _translate
    token = self.token_acquirer.do(text)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/gtoken.py", line 180, in do
    self._update()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/googletrans/gtoken.py", line 59, in _update
    code = unicode(self.RE_TKK.search(r.text).group(1)).replace('var ', '')
AttributeError: 'NoneType' object has no attribute 'group'
steveJ avatar Jan 01 '70 08:01 steveJ
Aceptado

Actualización 06.12.20: se lanzó una nueva versión alfa 'oficial' de googletrans con una solución

Instale la versión alfa así:

pip install googletrans==3.1.0a0

Ejemplo de traducción:

translator = Translator()
translation = translator.translate("Der Himmel ist blau und ich mag Bananen", dest='en')
print(translation.text)
#output: 'The sky is blue and I like bananas'

En caso de que no funcione, intenta especificar la URL del servicio de esta manera:

from googletrans import Translator
translator = Translator(service_urls=['translate.googleapis.com'])
translator.translate("Der Himmel ist blau und ich mag Bananen", dest='en')

Consulte la discusión aquí para obtener detalles y actualizaciones: https://github.com/ssut/py-googletrans/pull/237

Actualización 10.12.20: se lanzó otra solución

Como señalaron @DesiKeki y @Ahmed Breem, hay otra solución que parece funcionar para varias personas:

pip install googletrans==4.0.0-rc1

Discusión de Github aquí: https://github.com/ssut/py-googletrans/issues/234#issuecomment-742460612

En caso de que las soluciones anteriores no funcionen para usted

Si lo anterior no funciona para usted, google_trans_newparece ser una buena alternativa que funciona para algunas personas. No está claro por qué la solución anterior funciona para algunos y no para otros. Vea detalles sobre instalación y uso aquí: https://github.com/lushan88a/google_trans_new

#pip install google_trans_new

from google_trans_new import google_translator  
translator = google_translator()  
translate_text = translator.translate('สวัสดีจีน',lang_tgt='en')  
print(translate_text)
#output: Hello china
Moritz avatar Dec 02 '2020 13:12 Moritz

Actualización 12/01/2020: Este problema resurgió últimamente, (aparentemente) causado una vez más por algunos cambios en la API de traducción de Google.

Se está discutiendo (nuevamente) una solución en esta edición de Github . Aunque todavía no existe una solución definitiva, una solicitud de extracción parece estar resolviendo el problema: https://github.com/ssut/py-googletrans/pull/237 .

Mientras esperamos que se apruebe se puede instalar así:

$ pip uninstall googletrans
$ git clone https://github.com/alainrouillon/py-googletrans.git
$ cd ./py-googletrans
$ git checkout origin/feature/enhance-use-of-direct-api
$ python setup.py install

Respuesta original :

Al parecer se trata de un problema reciente y generalizado por parte de Google. Citando varias discusiones de Github, sucede cuando Google te envía directamente el token sin formato.

Se está discutiendo ahora mismo y ya hay una solicitud de extracción para solucionarlo, por lo que debería resolverse en los próximos días.

Como referencia, consulte:

https://github.com/ssut/py-googletrans/issues/48 <-- exactamente el mismo problema reportado en el repositorio de Github https://github.com/pndurette/gTTS/issues/60 <-- aparentemente el mismo problema en una biblioteca de texto a voz https://github.com/ssut/py-googletrans/pull/78 <-- solicitud de extracción para solucionar el problema

Para aplicar este parche (sin esperar a que se acepte la solicitud de extracción), simplemente instale la biblioteca desde el repositorio bifurcado https://github.com/BoseCorp/py-googletrans.git (primero desinstale la biblioteca oficial):

$ pip uninstall googletrans
$ git clone https://github.com/BoseCorp/py-googletrans.git
$ cd ./py-googletrans
$ python setup.py install

Puede clonarlo en cualquier lugar de su sistema e instalarlo globalmente o dentro de un archivo virtualenv.

Maldus avatar Sep 22 '2018 11:09 Maldus