导入chatterbot报错:无法从chatterbot.utils导入input_function如何解决?
问题原因
input_function导入报错有两个核心诱因:- 本地桌面路径下存在自定义的
utils.py文件,Python导入模块时会优先读取当前目录的同名文件,而非chatterbot官方的utils模块 - ChatterBot 1.0及以上版本已经完全移除了
chatterbot.utils.input_function这个导出接口,旧版本的用法已经失效
- 本地桌面路径下存在自定义的
ChatBot类不存在default_session属性的报错同样由版本不兼容导致,新版本重构了会话管理逻辑,废弃了该属性
解决方案
- 先将本地
/Users/drax/Desktop/utils.py文件重命名为非冲突名称(比如my_utils.py),同时删除同目录下的__pycache__缓存文件夹,避免模块导入优先级冲突 - 输入处理相关功能可以使用新版本官方提供的输入适配器实现,示例用法:
# 导入终端输入适配器,替代原有input_function的功能 from chatterbot.input import TerminalAdapter
如果需要自定义输入逻辑,继承chatterbot.input.InputAdapter基类重写process_input方法即可
3. 原有default_session的功能可以通过调用get_session()方法实现:
from chatterbot import ChatBot bot = ChatBot('你的机器人名称') # 获取会话实例,替代原有default_session属性 current_session = bot.get_session()
内容的提问来源于stack exchange,提问作者Astroputty
相关产品推荐
相关产品推荐

