Home > Software engineering >  Can't import name "Dispatcher" from telegram.ext
Can't import name "Dispatcher" from telegram.ext

Time:01-11

I am a beginner with python-telegram-bot, I have installed version 20.0.

I installed a package "django-telegram bot" to help me integrate python-telegram-bot into django but I got an import error upon running the code

ImportError: cannot import name "Dispatcher" from telegram.ext

I delved into the python-telegram-bot package and discovered that there is no module called Dispatcher, but several online tutorials directly imported Dispatcher from telegram.ext.

CodePudding user response:

To import the dispatcher module, you'll first need to install the python-telegram-bot package. It looks like, from the question you have done this.

pip install python-telegram-bot

then all you have to do is this:

from telegram import Dispatcher

it is not imported from telegram.ext. from what i can see the telegram.ext part looks like this.

from telegram.ext import MessageHandler, Filters

def handle_message(bot, update):
    message = update.message.text
    bot.send_message(chat_id=update.message.chat_id, text=message)

dp.add_handler(MessageHandler(Filters.text, handle_message))

and that reqires a bot which is derived from this:

from telegram import Bot
bot = Bot(token="YOUR_BOT_TOKEN")

Which is different to what is suggested in the original question.

CodePudding user response:

The django-telegram-bot library is just not compatible with version 20 of python-telegram-bot. As you can see in the requirements file it requires the ancient version 5.3.0 of python-telegram-bot (it was released on 2016-12-11).


Disclaimer: I'm currently the maintainer of python-telegram-bot.

  • Related