1. ホーム
  2. python

[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。

2022-07-05 08:28:59

質問

私は googletrans を試していて、それは非常にうまくいっていました。今朝から以下のエラーが発生するようになりました。私はstackoverflowと他のサイトからの複数のポストを通過し、おそらく私のIPは、いつかサービスを使用するために禁止されていることがわかった。私は別のIPを持っている複数のサービスプロバイダのインターネットを使用してみましたが、まだ同じ問題に直面して?私はまた、使用しようとした googletrans を別のラップトップで、まだ同じ問題です。 googletrans パッケージが壊れているのか、それとも google が何かしたのか?

>>> 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'

どのように解決するのですか?

2020年12月1日に更新しました。 この問題は、Google翻訳APIの変更により、最近再び発生するようになりました。

解決策は、(再び)この Github issue . まだ決定的な解決策があるわけではありませんが、Pull Request で問題が解決されつつあるようです。 https://github.com/ssut/py-googletrans/pull/237 .

承認されるのを待つ間、このようにインストールすることができます。

$ 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

オリジナルの回答 :

どうやら、Google側で最近広まった問題のようです。 Github のさまざまな議論を引用すると、Google が生のトークンを直接送信したときに発生するそうです。

今まさに議論されており、すでに修正のためのプルリクエストがあるので、数日中に解決されるはずです。

参考までに

https://github.com/ssut/py-googletrans/issues/48 <-- Github リポジトリで報告されている問題とまったく同じです。 https://github.com/pndurette/gTTS/issues/60 <-- 音声合成ライブラリでも同じ問題が発生しているようです。 https://github.com/ssut/py-googletrans/pull/78 <-- この問題を修正するためのプルリクエスト

このパッチを適用するには (プルリクエストが受け入れられるのを待たずに) フォークされたレポからライブラリをインストールするだけです。 https://github.com/BoseCorp/py-googletrans.git にあるライブラリをインストールするだけです (まず公式ライブラリをアンインストールしてください)。

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

システムのどこにでもクローンして、グローバルにインストールすることができます。 virtualenv .