Задать вопрос
@Empty_0

Почему выдается ошибка NameError: name 'InlineKeyboardMarkup' is not defined?

Вот код
ошибка NameError: name 'InlineKeyboardMarkup' is not defined:

import telebot
import random
import time
from telebot import types

bot = telebot.TeleBot('5934808889:AAFNWsZRCHJvHXPubarGJY0DqYVBPjvNG_M')

@bot.message_handler(commands=['start'])
def start(message):
	markup1 = types.InlineKeyboardMarkup(row_width=2)
	btn1 = types.InlineKeyboardButton('Привет', callback_data='good')
	btn2 = types.InlineKeyboardButton('Пока', callback_data='bad')
	markup1.add(btn1, btn2)
	bot.send_message(message.chat.id, "Привет курсед!", reply_markup=markup1)

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
	if call.message:
		if call.data == 'good':
			markup2 = types.InlineKeyboardMarkup(row_width=2)
			btn3 = types.InlineKeyboardButton('Да', callback_data='yes')
			btn4 = types.InlineKeyboardButton('Нет', callback_data='no')
			markup2.add(btn3, btn4)
			bot.send_message(call.message.chat.id, 'Го дружить курсед?', reply_markup=markup2)
		elif call.data == 'yes':
			markup3 = types.InlineKeyboardMarkup(row_width=2)
			btn11 = types.InlineKeyboardButton('Не скажу', callback_data='idk')
			btn12 = types.InlineKeyboardButton('Я Просто курсед', callback_data='ik')
			markup3.add(btn11, btn12)
			bot.send_message(call.message.chat.id, "Ок я матвей курсед люты пон пон нытик типчик. А ты?", reply_markup=markup3)
		elif call.data == 'idk':
			bot.send_message(call.message.chat.id, "Нене иди в попу (в мыслях:ДОМООООООООООООООООЙ БОТА!!!!!!!=)")
		elif call.data == 'ik':
			markup4 = InlineKeyboardMarkup(row_width=1)
			btn111 = InlineKeyboardButton('Плакать', callback_data='cry')
			markup4.add(btn111)
			bot.send_message("Плачь. Я не буду с тобой дружить, Совбратец.", reply_markup=markup4)		
		elif call.data == 'no':
			bot.send_message(call.message.chat.id, 'я тоже(')
		elif call.data == 'bad':
			bot.send_message(call.message.chat.id, 'я тоже(')

@bot.message_handler(commands=['random'])
def randomnumber(message):
	markup123 = InlineKeyboardMarkup(row_width=2)
	btn123 = InlineKeyboardButton('Да', callback_data='yes2')
	btn124 = InlineKeyboardButton('Нет', callback_data = 'no2')
	markup123.add(btn123, btn124)
	bot.send_message(message.chat.id, 'Вы хотите чтоб я сказал рандомное число?')

@bot.callback_query_handler(func=lambda call: True)
def callback_inline2(call):
	if call.message:
		if call.data == 'no2':
			bot.send_message(call.message.chat.id, 'Иди в попу')
		elif call.data == 'yes2':
			randomnumber = random.randint(1, 9999999999999999)
			bot.send_message(call.message.chat.id, 'генерирую...')
			time.sleep(2)
			bot.send_message(call.message.chat.id, 'Ваше число: ' + str(randomnumber))


bot.polling(none_stop=True)
  • Вопрос задан
  • 574 просмотра
Подписаться Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Maksim_64
@Maksim_64
Data Analyst
потому что python не знает что такое InlineKeyboardMarkup на прямую вы его не импортируете, по всей видимости данный класс содержится в модуле types так что по всей видимости код должен выглядеть так types.InlineKeyboardMarkup причем это у вас не в одном месте, так что везде передед Inline вставьте types
Ответ написан
TalismanChet
@TalismanChet
Лицо зла
добавь к каждому types.* часть "telebot":
telebot.types.*
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
27 дек. 2024, в 17:16
3000 руб./за проект
27 дек. 2024, в 16:58
1000 руб./за проект
27 дек. 2024, в 16:48
5000 руб./за проект