googletrans dejó de funcionar con el error 'NoneType' El objeto no tiene el atributo 'grupo'
Lo estuve intentando googletrans
y 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 googletrans
en diferentes computadoras portátiles, pero sigue siendo el mismo problema. ¿Está googletrans
el 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'
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_new
parece 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
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
.