运行Discord机器人时遭遇ImportError问题求助
解决Python 3.11中
ImportError: cannot import name 'Mapping' from 'collections'问题 问题原因
Python 3.3起,Mapping这类抽象基类就被迁移到collections.abc模块,Python 3.10及以上版本中collections模块不再直接导出这些类。你当前使用的urllib3版本过旧,仍在使用过时的导入路径,导致报错。
解决步骤
- 升级urllib3到兼容版本:打开命令提示符执行以下命令,确保安装支持Python 3.11的urllib3版本(至少1.26.10)
pip install --upgrade urllib3 - 同步升级requests:由于你的代码依赖requests,而requests又依赖urllib3,同步升级避免版本冲突
pip install --upgrade requests - 验证版本:执行以下命令确认urllib3版本符合要求
pip show urllib3
临时应急修复(不推荐)
如果暂时无法升级,可以手动修改urllib3的selectors.py文件:
找到路径C:\Users\andreas\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\selectors.py,将第14行的
from collections import namedtuple, Mapping
修改为
from collections import namedtuple from collections.abc import Mapping
内容的提问来源于stack exchange,提问作者AJMullen
相关产品推荐
相关产品推荐

