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

Написал первого бота, а он выдает ошибки, поможете?

Писал-писал бота, а он в итоге не работает, гуглил и яндексил ошибки, но все мимо.
В терминале все работало, пока не попытался сделать бота. Бот запускается, но когда вводишь тригер, отваливается и выдает кучу красных букв.
Язык: Python
Библиотеки: telebot, pyowm, translate

Ошибки:
Traceback (most recent call last):
File "C:\Users\Badmajor\PycharmProjects\test_FCS\main.py", line 36, in
bot.polling(none_stop=True)
File "D:\Python\lib\site-packages\telebot\__init__.py", line 619, in polling
self.__threaded_polling(none_stop, interval, timeout, long_polling_timeout, allowed_updates)
File "D:\Python\lib\site-packages\telebot\__init__.py", line 678, in __threaded_polling
raise e
File "D:\Python\lib\site-packages\telebot\__init__.py", line 641, in __threaded_polling
self.worker_pool.raise_exceptions()
File "D:\Python\lib\site-packages\telebot\util.py", line 130, in raise_exceptions
raise self.exception_info
File "D:\Python\lib\site-packages\telebot\util.py", line 82, in run
task(*args, **kwargs)
File "C:\Users\Badmajor\PycharmProjects\test_FCS\main.py", line 33, in handle_text
bot.reply_to(message.from_chat.id, answer)
AttributeError: 'Message' object has no attribute 'from_chat'

Process finished with exit code 1


Сам код:
import telebot
import pyowm
from pyowm import OWM
from pyowm.utils import config
from pyowm.utils import timestamps
import translate
from translate import Translator

translator = Translator(to_lang='ru')

owm = OWM('7a64c349fa71ba8cff904ea78d46e6aa')
mgr = owm.weather_manager()
bot = telebot.TeleBot('1839512085:AAEBe_-Hyfvf0u2ZWg1hbhktnoEEZnQdJxM')


@bot.message_handler(content_types=['text'])
def handle_text(message):
    if message.text == "что надеть?" or "Что надеть?":

        observation = mgr.weather_at_place('Набережные Челны')

        w = observation.weather
        temp = w.temperature('celsius')['temp']

        tranlation = translator.translate(w.detailed_status)
        answer = 'Сейчас ' + str(temp) + ' и ' + tranlation + '\n'
        if temp > 30:
            answer += 'На улице Ташкент, лучше ничего не одевать, тебе это очень идет'
        elif temp > 20:
            answer += 'Теплынь же надевай короткую юбку и топик,' + '\n' + 'но и сарафанчик подойдет'
        elif temp > 10:
            answer += 'Ну погодка такая себе, джинсы и толстовка ' + '\n' + 'подойдут,курточку прихвати на всякий'
        elif temp > 0:
            answer += 'Холотун на улице, сиди дома под пледом'
        else:
            answer += 'я умею определять только плюсовую температуру'
        bot.reply_to(message.from_chat.id, answer)


bot.polling(none_stop=True)
  • Вопрос задан
  • 235 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
@twistfire92
Python backend developer
А вы хотя бы пытались прочитать что в ошибках написано?
bot.reply_to(message.from_chat.id, answer)
AttributeError: 'Message' object has no attribute 'from_chat'


В объекте message нет атрибута from_chat.

Пробуйте так:
bot.reply_to(message.chat.id, answer)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы