@tds1289

Создаю телеграмм бота,но выдаёт ошибку TypeError: weather_manager() missing 1 required positional argument: 'self', что делать?

Я только недавно начал изучение языка PYTHON, и программирования в целом,из-за чего не могу разобраться в чем проблема.
import  telebot
from pyowm import OWM
from pyowm.utils.config import get_default_config

bot = telebot.TeleBot("", parse_mode=None)

config_dict = get_default_config()
config_dict['language'] = 'ru' 

owm = OWM('')

@bot.message_handler(content_types=['text'])
def send_echo(message):
    mgr = OWM.weather_manager()
    observation = mgr.weather_at_place( message.text )
    w = observation.weather 
    temp = w.temperature('celsius')["temp"]

    answer = "В городе " + message.text + " сейчас " + w.detailed_status + "\n"
    answer +="Температура около " + str( temp ) + " градусов цельсия." + "\n\n"
     

    if temp < 10 :
        answer += "На улице прохладно,нужна курточка."

    elif temp < 20 :
        answer += "В целом довольно тепло,можно и без куртки.)"

    else:
        answer += "Шорты и футболка-самое то =D."
    bot.send_message(message.chat.id, answer) 

bot.polling(none_stop=True)
    
#print(w)
  • Вопрос задан
  • 88 просмотров
Решения вопроса 2
Потому что надо не OWM.weather_manager() а owm.weather_manager(). И еще вы токен спалили
Ответ написан
@GeneD88
QA
Посмотрите, вы создали объект owm = OWM('API')

def send_echo(message):
    mgr = OWM.weather_manager()

->
def send_echo(message):
    mgr = owm.weather_manager()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
John_Norton
@John_Norton
Game developer
Честно говоря, я не знаю этот язык, но знаю C#
Твоя проблема в том, что ты где-то не поставил аргумент self.
Ещё вопрос к тебе, в какой именно строке ошибка?
mgr = OWM.weather_manager()
Попробуй сюда вписать self ( в скобки)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы