python gTTS RuntimeError:无法获取语言列表:'NoneType'对象不可下标

时间:2018-11-29 01:04:31

标签: python spyder

我已经看到有关此类错误的问题,但与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模块中进行了调查。我认为它无法从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 :(得分:0)

尝试在虚拟环境中使用“ pip3 install -U gTTS”更新您的gTTS模块...

答案 1 :(得分:0)

升级为我解决了问题,但不得不强制重新安装 pip install --upgrade --force-reinstall gtts

答案 2 :(得分:0)

CUDNN_TENSOR_OP_MATH已发布。

我按照John D.的要求重新安装了gTTS模块,并更新了gTTS 2.0.3

我改写了我的原始代码

lang.py

gtts.lang.tts_langs()

我可以解决问题。

这不是我问题的镜像答案,但我很满意。 gtts模块似乎可以在将来进行更新,并且正在开发中。 我没有理由坚持使用gtts.tts.tts_langs()