Top.Mail.Ru
Ответы

Всем привет у меня вопрос. у меня выводит эту ошибку на python в коде

ошибка:
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
start(fakepyfile,mainpyfile)
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
exec(open(mainpyfile).read(), __main__.__dict__)
File "<string>", line 2, in <module>
ImportError: cannot import name 'Filters' from 'telegram.ext' (/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/telegram/ext/__init__.py)

код бота:
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, MessageHandler, Filters, CallbackContext

def start(update: Update, context: CallbackContext) -> None:
keyboard = [[InlineKeyboardButton("Отправить сообщение", callback_data='send_message')]]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('Выберите действие:', reply_markup=reply_markup)

def button(update: Update, context: CallbackContext) -> None:
query = update.callback_query
query.answer()
if query.data == 'send_message':
query.edit_message_text(text="Введите сообщение для отправки:")
return

def receive_message(update: Update, context: CallbackContext) -> None:
message_text = update.message.text
# Отправка сообщения в группу
context.bot .send_message(chat_id='Id Chat', text=message_text)
update.message.reply_text(f"Сообщение отправлено: {message_text}")

def main() -> None:
updater = Updater("Token", use_context=True)
dp = updater.dispatcher

dp.add_handler(CommandHandler('start', start))
dp.add_handler(CallbackQueryHandler(button))
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, receive_message))

updater.start_polling()
updater.idle()

if __name__ == '__main__':
main()

По дате
По рейтингу
Аватар пользователя
Профи
9мес

поменяй импорт на обновленный и.. не собирай 5-летнее старьё по интернетам

Аватар пользователя
Просветленный
9мес
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
 from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup 
from telegram.ext import ( 
    Application, 
    CommandHandler, 
    CallbackQueryHandler, 
    MessageHandler, 
    filters, 
    ContextTypes, 
) 
 
# Функция обработчик команды /start 
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 
    keyboard = [ 
        [InlineKeyboardButton("Отправить сообщение", callback_data='send_message')] 
    ] 
    reply_markup = InlineKeyboardMarkup(keyboard) 
    await update.message.reply_text('Выберите действие:', reply_markup=reply_markup) 
 
# Функция обработчик нажатия кнопки 
async def button(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 
    query = update.callback_query 
    await query.answer() 
    if query.data == 'send_message': 
        await query.edit_message_text(text="Введите сообщение для отправки:") 
 
# Функция обработчик полученного сообщения 
async def receive_message(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 
    message_text = update.message.text 
    # Отправка сообщения в группу 
    await context.bot.send_message(chat_id='ID_CHAT', text=message_text) 
    await update.message.reply_text(f"Сообщение отправлено: {message_text}") 
 
def main() -> None: 
    # Создайте приложение 
    application = Application.builder().token("YOUR_TOKEN_HERE").build() 
 
    # Добавьте обработчики 
    application.add_handler(CommandHandler('start', start)) 
    application.add_handler(CallbackQueryHandler(button)) 
    application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, receive_message)) 
 
    # Запустите бота 
    application.run_polling() 
 
if __name__ == '__main__': 
    main() 
 

Ошибка ImportError: cannot import name 'Filters' from 'telegram.ext' возникает из-за изменений в библиотеке python-telegram-bot. Начиная с версии 20, библиотека претерпела значительные изменения, и многие классы и методы были переименованы или перемещены. В частности, класс Filters был заменён на модуль filters с различными фильтрами внутри него.

Аватар пользователя
Просветленный
9мес

Программируй на компьютере.