The Python Oracle

googletrans stopped working with error 'NoneType' object has no attribute 'group'

--------------------------------------------------
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
and get $2,000 discount on your first invoice
--------------------------------------------------

Music by Eric Matyas
https://www.soundimage.org
Track title: Digital Sunset Looping

--

Chapters
00:00 Googletrans Stopped Working With Error 'Nonetype' Object Has No Attribute 'Group'
00:56 Accepted Answer Score 66
02:23 Answer 2 Score 254
03:33 Answer 3 Score 49
03:53 Answer 4 Score 28
04:31 Thank you

--

Full question
https://stackoverflow.com/questions/5245...

--

Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...

--

Tags
#python #nlp #googletranslate

#avk47



ANSWER 1

Score 254


Update 06.12.20: A new 'official' alpha version of googletrans with a fix was released

Install the alpha version like this:

pip install googletrans==3.1.0a0

Translation example:

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'

In case it does not work, try to specify the service url like this:

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

See the discussion here for details and updates: https://github.com/ssut/py-googletrans/pull/237

Update 10.12.20: Another fix was released

As pointed out by @DesiKeki and @Ahmed Breem, there is another fix which seems to work for several people:

pip install googletrans==4.0.0-rc1

Github discussion here: https://github.com/ssut/py-googletrans/issues/234#issuecomment-742460612

In case the fixes above don't work for you

If the above doesn't work for you, google_trans_new seems to be a good alternative that works for some people. It's unclear why the fix above works for some and doesn't for others. See details on installation and usage here: 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



ACCEPTED ANSWER

Score 66


Update 01/12/2020: This issue re-emerged lately, (apparently) caused once again by some changes on the Google translation API.

A solution is being discussed (again) in this Github issue. Although there is not a definitive solution yet a Pull Request seem to be solving the problem: https://github.com/ssut/py-googletrans/pull/237.

While we wait for it to be approved it can be installed like this:

$ 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

Original Answer:

Apparently it's a recent and widespread problem on Google's side. Quoting various Github discussions, it happens when Google sends you directly the raw token.

It's being discussed right now and there is already a pull request to fix it, so it should be resolved in the next few days.

For reference, see:

https://github.com/ssut/py-googletrans/issues/48 <-- exact same problem reported on the Github repo https://github.com/pndurette/gTTS/issues/60 <-- seemingly same problem on a text-to-speech library https://github.com/ssut/py-googletrans/pull/78 <-- pull request to fix the issue

To apply this patch (without waiting for the pull request to be accepted) simply install the library from the forked repo https://github.com/BoseCorp/py-googletrans.git (uninstall the official library first):

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

You can clone it anywhere on your system and install it globally or while inside a virtualenv.




ANSWER 3

Score 49


Try google_trans_new. It solved the problem for me 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('Hola mundo!', lang_src='es', lang_tgt='en')  
print(translate_text)
-> Hello world!



ANSWER 4

Score 28


By the time of this answer, you can solve it with the following:

Uninstall your installed version of

pip uninstall googletrans

Install the following version

pip install googletrans==4.0.0rc1

I hope this will works for you as it worked for me.

You can try it now:

from googletrans import Translator
translator = Translator()
ar = translator.translate('مرحبا').text
print(ar)

Note that 4.0.0rc1 is using an old version of httpx, if you are getting an error regarding that, you need to edit the file client.py, fix httpcore.SyncHTTPTransport to httpcore.AsyncHTTPProxy.