Python无法从asyncio导入coroutine的导入错误排查及解决
错误原因分析
- Python 3.11彻底移除了
asyncio.coroutine接口(该接口在Python 3.10就已被标记为废弃) - 当前使用的Motor版本过旧,代码中仍在尝试导入这个已被移除的接口,直接触发ImportError
修复方案
有两种可行解决方式:
升级Motor到兼容Python 3.11的版本
执行以下命令完成升级:pip install --upgrade motor新版本Motor已适配Python 3.11的API,不会再调用已被移除的
asyncio.coroutine降级Python版本到3.10及以下
如果项目存在其他无法升级的旧依赖,可以把Python版本降到3.10,该版本仍保留asyncio.coroutine接口,能适配旧版Motor
验证修复
完成升级或降级操作后,重新运行代码:
python bot.py
如果不再抛出ImportError,说明问题已解决
内容的提问来源于stack exchange,提问作者Aditya
相关产品推荐
相关产品推荐

