在Colab安装Python3.11.1时遇AttributeError: collections无MutableMapping的解决
在Google Colab安装Python 3.11.1后pip报错的解决方法
问题描述
在Google Colab中安装Python 3.11.1后,执行pip安装库时触发如下错误:
Traceback (most recent call last): File "/usr/local/bin/pip3", line 5, in <module> from pip._internal.cli.main import main File "/usr/lib/python3/dist-packages/pip/__init__.py", line 22, in <module> from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 73, in <module> vendored("pkg_resources") File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored __import__(modulename, globals(), locals(), level=0) File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 77, in <module> File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/packaging/requirements.py", line 9, in <module> File "<frozen importlib._bootstrap>", line 1178, in _find_and_load File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 674, in _load_unlocked File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/extern/__init__.py", line 43, in load_module File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/pyparsing.py", line 943, in <module> AttributeError: module 'collections' has no attribute 'MutableMapping'
已完成的配置步骤:
!sudo apt-get update -y !sudo apt-get install python3.11 !sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 !sudo update-alternatives --config python3
选择对应版本后,!python --version显示为Python 3.11.1,随后通过!sudo apt install python3-pip安装pip。
已尝试的修复方案:
- 更新collections导入逻辑:
import collections import sys if sys.version_info.major == 3 and sys.version_info.minor >= 10: from collections.abc import MutableMapping else: from collections import MutableMapping - 重装系统包:
!sudo apt install python-pip !sudo apt-get update !sudo apt-get upgrade !sudo apt-get update - 更新指定工具包:
!pip install --upgrade pip wheel setuptools requests
最终目标是安装以下库:
!pip install haversine !pip install codecarbon[viz]
解决方案
核心原因
Python 3.10+版本中,MutableMapping已从collections模块迁移至collections.abc,但通过apt安装的系统级pip及依赖包(如pkg_resources、旧版pyparsing)未适配该变更,导致版本冲突报错。
具体修复步骤
- 清理系统旧版pip
移除与Python 3.11不兼容的系统pip:!sudo apt remove python3-pip python-pip -y !sudo rm -rf /usr/lib/python3/dist-packages/pip* /usr/local/bin/pip* - 为Python 3.11安装专属pip
使用Python 3.11内置的ensurepip模块安装适配版本的pip:!python3.11 -m ensurepip --upgrade - 验证pip关联版本
检查pip是否绑定到Python 3.11:
若输出未关联Python 3.11,创建软链接强制绑定:!pip3 --version!sudo ln -sf /usr/local/bin/pip3 /usr/bin/pip - 安装目标库
此时可正常执行安装命令:!pip install haversine !pip install codecarbon[viz]
额外注意事项
- 后续安装库时,优先使用
python3.11 -m pip的形式调用,避免版本混用导致冲突。 - 若仍出现类似导入错误,可升级核心依赖包:
!pip install --upgrade setuptools pkg_resources
内容的提问来源于stack exchange,提问作者GoT GOt
相关产品推荐
相关产品推荐

