使用Python编写Chatbot过程中遇到的问题及解决方法汇总
在用PySimpleGUI和chatterbot编写一个chatbot的过程中,遇到了一些安装和导入包的问题,在此做一个汇总,希望可以帮助到遇到类似问题的你。
PySimpleGUI官方repo中的chatbot范例链接:Link
pip3 install chatterbot 报错
如果你的Python版本在3.8或3.8以上,在安装chatterbot中的spacy时,会出现安装不成功的情况:Collecting spacy<2.2,>=2.1
Using cached spacy-2.1.9.tar.gz (30.7 MB)
Installing build dependencies ... -
(进度条不动且最终有一长串报错)
发生这个问题的原因也许是spacy还没有对Python 3.8及更高版本进行适配,所以这时我选择把Python的编译环境换成3.8以下(3.6 亲测可行)
OSError: [E050] Can’t find model ‘en’
raise IOError(Errors.E050.format(name=name)) OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
解决方法:在terminal中运行此命令行下载 model ‘en’
python -m spacy download en
引用自:https://github.com/hamelsmu/Seq2Seq_Tutorial/issues/1
‘ChatBot’ object has no attribute ‘train’
chatbot.train("chatterbot.corpus.english")
AttributeError: 'ChatBot' object has no attribute 'train'
正如这个报错所描述的一样,Chatbot没有’train’这个attribute。解决方法也很简单,只要import ChatterBotCorpusTrainer并创造一个trainer的实例就可以解决:
from chatterbot.trainers import ChatterBotCorpusTrainer
...
(你的代码)
...
# 这一行是之前报错的代码 ⬇️
# chatbot.train("chatterbot.corpus.english")
# 改为 ⬇️ 即可
trainer = ChatterBotCorpusTrainer(chatbot)
trainer.train("chatterbot.corpus.english")