Похоже, что ошибка возникает из-за того, что вы пытаетесь использовать переменную updater в строке 41, но ее определение отсутствует в этом участке кода. Возможно, вы случайно удалили или переместили эту строку в коде.
Чтобы решить эту проблему, добавьте следующую строку перед строкой 41:
updater = Updater(bot_token, use_context=True)
Также убедитесь, что вы определили переменную bot_token ранее в коде, так как эта переменная используется при создании объекта Updater.
import telegram from telegram.ext import CommandHandler, Updater from telegram import InlineKeyboardButton, InlineKeyboardMarkup import requests def start(update, context): update.message.reply_text('Привет! Я бот для получения информации о погоде. Напишите /weather, чтобы узнать погоду в вашем городе.') def weather(update, context): city = 'Mersin' api_key = '-------------------------------------------------' url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric' response = requests.get(url) data = response.json() temp = data['main']['temp'] weather_description = data['weather'][0]['description'] message = f'Current temperature in {city}: {temp}°C\nWeather: {weather_description}' keyboard = [[InlineKeyboardButton("Weather", callback_data='weather')]] reply_markup = InlineKeyboardMarkup(keyboard) update.message.reply_text(message, reply_markup=reply_markup) if __name__ == '__main__': bot_token = '__________________________________' updater = Updater(bot_token, use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CommandHandler('weather', weather)) updater.start_polling()