Python3.9环境下Chatterbot初始化先后报错该如何解决
问题核心原因
ChatterBot官方已停止维护,默认适配的依赖版本过旧,和你使用的Python 3.9+、新版SQLAlchemy存在兼容性冲突,两次报错均为该问题导致。
最简易修复方案(无需修改源码)
直接降级SQLAlchemy到兼容版本即可解决两类报错:
- 先卸载当前版本SQLAlchemy:
pip uninstall sqlalchemy -y
- 安装适配ChatterBot的历史稳定版本:
pip install sqlalchemy==1.3.24
安装完成后重新运行你的代码即可正常执行。
可选方案(需修改源码,适配高版本SQLAlchemy)
如果你有必须使用高版本SQLAlchemy的需求,可手动修改ChatterBot源码适配:
- 找到报错提示路径下的
sql_storage.py文件,参考路径:C:\Users\Subha\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\chatterbot\storage\sql_storage.py - 在文件开头导入inspect工具:
from sqlalchemy import inspect
- 找到第46行的代码:
if not self.engine.dialect.has_table(self.engine, 'Statement'):
替换为:
if not inspect(self.engine).has_table('Statement'):
修改后保存重新运行即可。
内容的提问来源于stack exchange,提问作者sparkles
相关产品推荐
相关产品推荐

