Достаточно добавить except ...
import pyowm
import telebot
# от блокировок
# from telebot import apihelper
# apihelper.proxy = {'https':'socks5://127.0.0.1:9050'}
owm=pyowm.OWM('df1....51', language = 'ru')
bot = telebot.TeleBot('106...ilQ')
@bot.message_handler(content_types=['text'])
def send_echo(message):
try:
observation = owm.weather_at_place(message.text)
w = observation.get_weather()
temp=w.get_temperature('celsius')['temp']
answer = f"В городе {message.text} сейчас {w.get_detailed_status()} \n"
answer += f"Температура в районе {round(temp)} градусов\n\n"
if temp<10:
answer += 'Очень холодно, оденься потеплее))'
elif temp<17:
answer += 'Прохладно, лучше оденься:)'
else:
answer += 'Не холодно, хоть в трусах иди:)'
bot.send_message(message.chat.id, answer)
except pyowm.exceptions.api_response_error.NotFoundError:
bot.send_message(message.chat.id, 'Город не найден :(')
bot.polling(none_stop = True)