Python gTTS RuntimeError: Невозможно получить список языков: объект 'NoneType' не может быть подписан - PullRequest
0 голосов
/ 29 ноября 2018

Pre Я видел вопросы об ошибке такого рода, но она не была связана с gTTS.

Я использую модуль gTTS. Однажды эта ошибка внезапно произошла.Да, я никогда не обрабатывал эти коды со времени их импорта. До вчерашнего дня этой ошибки не было.

Это произошло, когда я извиняюсь за этот код:

Код

sounditems = [i for i in gtts.lang.tts_langs().values()]

Ошибка

RuntimeError: Unable to get language list: 'NoneType' object is not subscriptable

In [1]: import gtts

In [2]: gtts.lang
Out[2]: <module 'gtts.lang' from 'C:\\Anaconda3\\lib\\site-packages\\gtts\\lang.py'>

In [3]: gtts.lang.tts_langs()
Traceback (most recent call last):

  File "<ipython-input-3-53b538afe087>", line 1, in <module>
    gtts.lang.tts_langs()

  File "C:\Anaconda3\lib\site-packages\gtts\lang.py", line 41, in tts_langs
    raise RuntimeError("Unable to get language list: %s" % str(e))

RuntimeError: Unable to get language list: 'NoneType' object is not subscriptable

gTTS версия

enter image description here

Редактор

In [7]: spyder.version_info
Out[7]: (3, 2, 8)

язык

python 3.6.5

После поиска

Я исследовал в gTTS lang module. Я думал, что это не удается получить информацию от Google. Возможно, это не проблемана стороне клиента.

Добавлено

После исследования модуля lang.py я обнаружил, что источником ошибки является его функция _fetch_langs(), и, похоже, он имеетне удалось выполнить soup.find(src=re.compile(JS_FILE))['src'].

Print Code

- результат

enter image description here

- длинный HTML-код -

enter image description here

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

Обновление решило это для меня, но пришлось принудительно переустановить pip install --upgrade --force-reinstall gtts

0 голосов
/ 23 января 2019

gTTS 2.0.3 уже выпущен.

Я переустановил модуль gTTS, следуя Джону Д., и я обновил lang.py.

Я переписал свой исходный код с

gtts.lang.tts_langs()

до

gtts.tts.tts_langs()

Я мог бы решить эту проблему.

Это не зеркальный ответ на мой вопрос, но я 'Я очень доволен.Похоже, что модуль GTS может быть обновлен в будущем и находится в стадии разработки.У меня нет оснований настаивать на gTTS 2.0.1

0 голосов
/ 01 декабря 2018

Попробуйте обновить модуль gTTS: «pip3 install -U gTTS» в вашей виртуальной среде ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...