Ошибка импорта Mapping from collections
при попытке запустить скрипт на питоне, постоянно выскакивает это:
PS C:\Users\Ruslan\Desktop\AutoShop> python main.py
Traceback (most recent call last):
File "C:\Users\Ruslan\Desktop\AutoShop\main.py", line 2, in <module>
import telebot, sqlite3, time, datetime, requests, configparser, random
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 29, in <module>
from telebot import apihelper, util, types
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\apihelper.py", line 10, in <module>
import requests
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\requests\__init__.py", line 43, in <module>
import urllib3
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\__init__.py", line 8, in <module>
from .connectionpool import (
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connectionpool.py", line 29, in <module>
from .connection import (
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\connection.py", line 39, in <module>
from .util.ssl_ import (
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\__init__.py", line 3, in <module>
from .connection import is_connection_dropped
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\lib\site-packages\urllib3\util\connection.py", line 3, in <module>
from .wait import wait_for_read
from .selectors import (
File "C:\Users\Ruslan\AppData\Local\Programs\Python\Python310\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\Ruslan\AppData\Local\Programs\Python\Python310\lib\collections\__init__.py)
Ответы (1 шт):
Автор решения: magistar
→ Ссылка
Для новых версий Python (начиная с 3.8) нужно импортировать Mapping из нового модуля abc внутри collections.
Если вам нужен код, совместимый со всеми версиями, можно сделать так:
try:
from collections.abc import Mapping
except ImportError:
from collections import Mapping
Если достаточно работоспособности только на свежих версиях, то достаточно строчки:
from collections.abc import Mapping