Недавно начал изучать Python и решил написать программу о погоде. Всё сделал правильно: библиотеку установил, версия 3.0.0, версия Python 3.8.5, но выскакивает ошибка:
Traceback (most recent call last):
File "C:/Users/___/123.py", line 5, in
observation = owm.weather_at_place(gorod)
AttributeError: 'OWM' object has no attribute 'weather_at_place'
Долго искал в интернете, но это не помогло. С чем связана ошибка и как её исправить?
Исходный код:
import pyowm gorod = input('Выберите город'"\n") owm = pyowm.OWM('мой id owm') observation = owm.weather_at_place(gorod) w = observation.get_weather() temperature = w.get_temperature('celsius')['temp'] print("В городе " + gorod + " сейчас " + str(temperature) + "°С")
Информатика 10 класс Ошибки и отладка программного кода Python ошибка AttributeError pyowm OWM weather_at_place программирование исправление ошибок работа с API температура погодные данные Новый
Ошибка, с которой вы столкнулись, связана с тем, что в библиотеке pyowm произошли изменения в API. Ваша версия библиотеки 3.0.0, и в ней изменился способ получения данных о погоде. Давайте разберёмся, как исправить ваш код.
Во-первых, давайте рассмотрим шаги, которые вам необходимо выполнить:
weather_at_place
был заменён на weather_manager().weather_at_place
.Теперь давайте перепишем ваш код с учётом этих изменений:
import pyowm gorod = input('Выберите город'"\n") owm = pyowm.OWM('ваш id owm') # Исправленный код для получения данных о погоде mgr = owm.weather_manager() observation = mgr.weather_at_place(gorod) # Получение данных о погоде w = observation.weather temperature = w.temperature('celsius')['temp'] print("В городе " + gorod + " сейчас " + str(temperature) + "°С")
Обратите внимание на следующие изменения:
mgr = owm.weather_manager()
, чтобы получить менеджер погоды.weather_at_place
теперь вызывается как mgr.weather_at_place(gorod)
.observation.weather
вместо get_weather()
.Теперь ваш код должен работать без ошибок. Попробуйте его запустить и проверьте, что данные о погоде отображаются корректно.