ImportError: cannot import name ‘Mapping‘ from ‘collections‘

Python遇见ImportError: cannot import name ‘Mapping’ from ‘collections’ (F:\lib\collections_init_.py)问题

一、问题的产生

问题就在于导入错误:无法从“集合”导入名称“映射”

因为Python3.10版本以后对requests库进行调整,collections中不能直接调用方法Mapping,MutableMapping

二、问题的解决

#将
from collections import Mapping 
from collections import MutableMapping 
#这些导入全部改为以下这些
from collections.abc import Mapping
from collections.abc import MutableMapping
#即用collections.abc代替collections调用方法Mapping、MutableMapping


三、需要更改的文件

1、可以通过报错来逐一更改:要改的文件可以通过程序报错的路径去改

2、参考我文件报错文件名并用ctrl+F全局搜索collections.替换为collections.abc.
F:\lib\site-packages\requests\models.py

F:\lib\site-packages\requests\utils.py

F:\lib\site-packages\requests\sessions.py

F:\lib\site-packages\requests\structures.py

F:\lib\site-packages\requests\cookies.py

F:\lib\site-packages\urllib3_collections.py

F:\lib\site-packages\urllib3\util\selectors.py

其他参考链接:

https://github.com/carbonblack/cbapi-python/issues/298

https://cxybb.com/article/hongel110/121333144

来源:水月梨诺

物联沃分享整理
物联沃-IOTWORD物联网 » ImportError: cannot import name ‘Mapping‘ from ‘collections‘

发表评论