Python 3.11.1导入requests模块触发ImportError问题求助
问题描述
尝试运行以下Python代码:
from pycocotools.coco import COCO import requests
使用Python 3.11.1版本,运行时触发ImportError,报错信息如下:
C:\path>python utils.py --img_out obj/ --label_out obj/ Traceback (most recent call last): File "C:\path\utils.py", line 6, in <module> import requests File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\__init__.py", line 43, in <module> import urllib3 File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\__init__.py", line 8, in <module> from .connectionpool import ( File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 29, in <module> from .connection import ( File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 39, in <module> from .util.ssl_ import ( File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\__init__.py", line 3, in <module> from .connection import is_connection_dropped File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\connection.py", line 3, in <module> from .wait import wait_for_read File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\wait.py", line 1, in <module> from .selectors import ( File "C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\selectors.py", line 14, in <module> from collections import namedtuple, Mapping ImportError: cannot import name 'Mapping' from 'collections' (C:\Users\windows\AppData\Local\Programs\Python\Python311\Lib\collections\__init__.py)
已通过pip安装requests模块,但问题依然存在。
解决方案
问题原因
Python 3.10及以上版本中,Mapping这类抽象基类已从collections模块迁移至collections.abc模块。当前安装的urllib3版本不兼容Python 3.11,而requests依赖urllib3,因此触发了导入错误。
解决步骤
- 升级urllib3到兼容版本
在命令行执行:pip install --upgrade urllib3 - 或直接升级requests
升级requests会自动同步安装兼容Python 3.11的urllib3版本:pip install --upgrade requests - 若仍有问题,使用虚拟环境隔离依赖
- 创建虚拟环境:
python -m venv myenv - 激活虚拟环境(Windows系统):
myenv\Scripts\activate - 安装所需依赖:
pip install requests pycocotools
- 创建虚拟环境:
内容的提问来源于stack exchange,提问作者thestruggleisreal
相关产品推荐
相关产品推荐

