


ImportError: cannot import name 'Filters' from 'telegram.ext'
Делаю бота была куча ошибок и т.д. но я уже их решл, появилась последняя ошибка ответ на которую я найти не могу(
C:\Users\...>python bot.py
Traceback (most recent call last):
File "bot.py", line 2, in <module>
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
ImportError: cannot import name 'Filters' from 'telegram.ext' (C:\Users\...\AppData\Roaming\Python\Python38\site-packages\telegram\ext\__init__.py)
Cкрипт бота:
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, filters, CallbackContext
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
# Создаем объект чатбота
bot = ChatBot('MyBot')
# Добавляем тренера
trainer = ChatterBotCorpusTrainer(bot)
trainer.train("chatterbot.corpus.english") # обучаем базовым фразам
# Обработчик команды /start
def start(update: Update, context: CallbackContext) -> None:
update.message.reply_text('Привет! Я бот с искусственным интеллектом. Чем могу помочь?')
# Обработчик сообщений
def reply(update: Update, context: CallbackContext) -> None:
response = bot.get_response(update.message.text)
update.message.reply_text(response)
def main() -> None:
updater = Updater("6899537087:AAGSF5PlqkCiexKtpmVsd_0sl7aouCem3Gk", use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(MessageHandler(filters.text & ~filters.command, reply))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
вроде исправил с помощью ии но оно видит ошибку из неоткуда...

и снова выдает такую ошибку

забыл упомянуть что немного поменял код
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, filters, CallbackContext
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
# Создаем объект чатбота
bot = ChatBot('MyBot')
# Добавляем тренера
trainer = ChatterBotCorpusTrainer(bot)
trainer.train("chatterbot.corpus.english") # обучаем базовым фразам
# Обработчик команды /start
def start(update: Update, context: CallbackContext) -> None:
nlp = spacy.load("en_core_web_sm")
update.message.reply_text('Привет! Я бот с искусственным интеллектом. Чем могу помочь?')
# Обработчик сообщений
def reply(update: Update, context: CallbackContext) -> None:
response = bot.get_response(update.message.text)
update.message.reply_text(response)
def main() -> None:
updater = Updater("6899537087:AAGSF5PlqkCiexKtpmVsd_0sl7aouCem3Gk", use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(MessageHandler(filters.text & ~filters.command, reply))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
проблема не решена...
Ты хоть скачал python-telegram-bot? Если да попробуй более старые версии может Filters просто убрали из библиотеки.
Проблема решена ! (это 2-ой аккаунт)
чтобы устранить я сделал следующее:
1. в консоли выполнил python -m spacy download en_core_web_sm --user
2. поменял строку кода:
def main() -> None:
updater = Updater("6899537087:AAGSF5PlqkCiexKtpmVsd_0sl7aouCem3Gk", use_context=True)
на
def main() -> None:
updater = Updater("6899537087:AAGSF5PlqkCiexKtpmVsd_0sl7aouCem3Gk")
т.е. удалил , use_context=True
3. в консоли выполнил: pip uninstall python-telegram-bot
4. в консоли: pip install python-telegram-bot==12
5. заменил кусок когда в "C:\Users\...\AppData\Roaming\Python\Python38\site-packages\chatterbot\tagging.py" а именно:
13 строчку (была 1 после замены стало 3)
if self.language.ISO_639_1.lower() == 'en':
self.nlp = spacy.load('en_core_web_sm')
else:
self.nlp = spacy.load(self.language.ISO_639_1.lower())
Изначальная строчка была потеряна
Однако после этого получилась новая ошибка подробнее: https://otvet.mail.ru/question/236766187