AttributeError: Модуль «collections» не имеет атрибута «mutablemapping» — данная ошибка возникает из-за изменений внутреннего кода в версии 3.10.

Воспроизведение ошибки
|
1 2 3 4 5 |
import collections main_dict = collections.MutableMapping print(main_dict) |
Выход
|
1 |
AttributeError: module 'collections' has no attribute 'mutablemapping' |
В Python 3.10 и более поздних версиях класс MutableMapping был удален из модуля коллекций. Вот почему вы видите ошибку AttributeError, в которой говорится: «У модуля collections нет атрибута MutableMapping».
Как исправить ошибку?
Вот два способа исправить ошибку.
Способ 1: используйте модуль Collections.abc
Чтобы исправить ошибку AttribuyeError: модуль «collections» не имеет атрибута «mutablemapping», используйте встроенный класс Mapping из модуля Collections.abc.
|
1 2 3 4 5 |
import collections main_dict = collections.abc.MutableMapping print(main_dict) |
Выход
|
1 |
<class 'collections.abc.MutableMapping'> |
- Для версии 3.10 или выше:
|
1 |
from collections.abc import MutableMapping |
- Для версии 3.9 или ниже:
|
1 |
from collections import MutableMapping |
Класс Mapping — это абстрактный базовый класс(ABC), который предоставляет согласованный интерфейс для работы со словарными объектами. Он не предназначен для непосредственного создания экземпляров, но служит базовым классом для других сопоставлений с подклассом.
Если ошибка по-прежнему не устранена, вы можете обновить соответствующий пакет следующим образом:
|
1 2 3 4 5 |
pip install --upgrade pip pip install --upgrade wheel pip install --upgrade setuptools pip install --upgrade requests |
Способ 2: понижение версии Python до версии 3.9 или ниже
Мы понизим нашу версию Python до 3.9 или любой совместимой более ранней версии.
