Как исправить ошибку ‘telebot’ object has no attribute ‘message_handler’
Чат-боты – это одно из основных направлений, которое начинают изучать разработчики на Python, освоившие основы языка. Сегодня существуют десятки платформ для публикации своих чат-ботов. Однако большинство разработчиков предпочитают Telegram для разработки, ведь в Python для него есть библиотека под названием Telebot. Однако начинающие разработчики при работе с модулем могут столкнуться с ошибкой ‘telebot’ object has no attribute ‘message_handler’.
СОДЕРЖАНИЕ СТАТЬИ:
Описание ошибки
Язык Python славится своей удобной системой отладки, которая в большинстве случаев позволяет в первую же минуту определить причину ошибки после прочтения ее описания в интерпретатора. Правда для этого требуется минимум среднее знание английского языка и конструкций Python. Однако даже интерпретатор не всегда может дать точное описание ошибки, из-за чего разработчику приходится самостоятельно искать проблему.
Давайте разберем, на что именно ругается интерпретатор. Он заявляет, что в установленном и импортированном модуле telebot отсутствует функция «message_handler», необходимая для проверки вводимых пользователем сообщений и команд. Казалось бы, что проблему можно решить установкой отсутствующей функции. Однако метод по умолчанию входит в библиотеку PyTeleBot, а потому устанавливать его отдельно нет смысла (да и технической возможности).
Как ее решить
Примечательно, что чаще всего проблема с ботом возникает обычно во время публикации в Production (на боевой сервер), однако она исчезает при запуске того же скрипта на локальном компьютере. Причина такого странного поведения кроется в старых версиях зависимостей (модули, которые используются для корректной работы программы). Для того, чтобы исправить проблему, рекомендуем выполнить действия ниже:
- Установите Python версии не ниже 3.6. К слову, после этого действия может перестать определяться модуль PyTelebot. Это связано с тем, что он создан в виртуальном окружении предыдущей версии.
- Обновите установленные пакеты (на Ubuntu это apt update && apt upgrade).
- Обновите Pip (‘python -m pip install –upgrade pip).
- Заново установите Telebot (pip install pyTelegramBotAPI). Это действие стоит выполнять только после обновления PIP.
Перечисленные выше действия должны помочь решить проблему.
Как проверить работоспособность
Предположим, что перечисленные выше действия помогли решить проблему. Однако у новичков порой возникает вопрос: «как теперь запустить бота». Запуск после получения ошибки ничем не отличается от обычного запуска. Достаточно открыть терминал, перейти в папку с проектом и ввести команду «python *название_главного_файла.py*». В случае, если скрипт запускается на дистрибутивах Linux, то вместо команды python попробуйте ввести python3.
Это заставит ОС принудительно выбрать третью версию интерпретатора, если в системе установлено несколько версий второго и третьего поколения. Надеемся, что смогли помочь решить проблему. Нам остается только пожелать удачи в изучении мира программирования.