Ошибка: 'NoneType' object has no attribute 'group' (Googletrans)
Как исправить ошибку 'NoneType' object has no attribute 'group', которая возникает при попытке перевода текста через googletrans (version = '3.0.0'). Срабатывает она не каждый раз, а в каком-то хаотичном порядке (Пикрил).
вот функция, в которой я перевожу текст:
from googletrans import Translator # Библиотека для перевода текста
def translate(self):
if self.can_translate:
translator = Translator()
in_text = self.inputText.toPlainText() # Текст из поля ввода
in_lang = languages[self.inputLanguage.currentText()] # Язык с которого переводим (ru/en/...)
out_lang = languages[self.outputLanguage.currentText()] # Язык на который переводим (ru/en/...)
try:
# Запрос к гугл переводчику и занесение текста в поле вывода
print(in_text, in_lang, out_lang, "<---- Входные данные для перевода")
result = translator.translate(in_text, src=in_lang, dest=out_lang)
self.outputText.setPlainText(result.text)
# Сохраняем перевод в БД и обновляем виджеты
self.save_to_data_base()
self.update_table_widgets()
except Exception as e:
print(e, "<---- Ошибка")
Ответы (2 шт):
Автор решения: S1riyS
→ Ссылка
Проблема решилась путем чтения гитхаба и танца с бубном. Для исправления ошибки я вынес инициализацию переводчика в __init__(self) и в функции translate(self) я инициализирую его заново до тех пор, пока он не перестанет выдавать ошибку.
Код:
def __init__(self):
# Some code
self.translator = Translator()
# Some code
def translate(self):
if self.can_translate:
in_text = self.inputText.toPlainText() # Текст из поля ввода
in_lang = languages[self.inputLanguage.currentText()] # Язык с которого переводим (ru/en/...)
out_lang = languages[self.outputLanguage.currentText()] # Язык на который переводим (ru/en/...)
while True:
try:
# Запрос к гугл переводчику и занесение текста в поле вывода
result = self.translator.translate(in_text, src=in_lang, dest=out_lang)
self.outputText.setPlainText(result.text)
# Сохраняем перевод в БД и обновляем виджеты
self.save_to_data_base()
self.update_table_widgets()
break
except Exception as e:
self.translator = Translator()
print(e, "<---- Ошибка")
Автор решения: NETkuz
→ Ссылка
pip по умолчанию устанавлиает страую библиотеку googletranslate 3.0
нужно установить новую версию
pip install googletrans==4.0.0rc1
обратите внимание, эта версия не принимает списки. Только str...
