При попытке смены языка в pyowm 3.0.0 выдает ошибку

vafel

Новичок
Пользователь
Июл 2, 2020
6
3
3
Windows 7, Python: 3.8.3

Ошибка:
$ python w.py
Traceback (most recent call last):
File "w.py", line 3, in <module>
owm = OWM( 'd13b6226a0f0728c7ccf17935b8ba0a3', language = "ru" )
TypeError: __init__() got an unexpected keyword argument 'language'

Код:
from pyowm import OWM

owm = OWM( 'd13b6226a0f0728c7ccf17935b8ba0a3', language = "ru" )



plase = input( " В каком городе нужна погода?: " )

mgr = owm.weather_manager()
observation = mgr.weather_at_place(plase)
w = observation.weather

print( "В городе " + plase + " сейчас " + str(w) )


input()

Комментарий: Если убрать language = "ru", то все работает идеально.
А еще хотел бы спросить, как выводить только detailed_status, а не всю информацию
 
  • Мне нравится
Реакции: Student

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Код вставляйте через кнопку ... -> вставить -> код -> python.
Проверил ваш код. Такой ошибки TypeError: __init__() got an unexpected keyword argument 'language' не получил.
Вот рабочий пример:
Python:
import pyowm


def get_wind_direction(wind):
    wind_dir = ''
    if 270 <= wind <= 360 or 0 <= wind <= 90:
        wind_dir += 'северо-'
    else:
        wind_dir += 'юго-'

    if 0 <= wind <= 180:
        wind_dir += 'восточный'
    else:
        wind_dir += 'западный'

    return wind_dir

owm = pyowm.OWM('d13b6226a0f0728c7ccf17935b8ba0a3', language="ru")

place = input("В каком городе нужна погода?: ")

observation = owm.weather_at_place(place)
w = observation.get_weather()
temp = w.get_temperature('celsius')['temp']
wind = w.get_wind()

print('В городе ' + place + ' сейчас ' + w.get_detailed_status())
print('Ветер сейчас ' + get_wind_direction(wind['deg']))
print('Скорость ветра: ' + str(wind['speed']) + ' метра в секунду')
print('Температура сейчас в районе ' + str(temp))
 
  • Мне нравится
Реакции: Student

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Возможно у вас слишком старая версия, либо слишком новая в которой данный аргумент убрали. Читайте changelog и проверьте документацию.
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
B52E0FD0-02B5-4F6D-A33C-272369996C5E.jpeg
В конструкторе класса действительно нет параметра language.
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Да, в версии 3.0.0 больше нет параметра language, он есть в 2.10.


Вы можете удалить 3 версию и поставить 2.10.

Код:
pip uninstall pyowm
pip install pyowm==2.10
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Но, лучше всего создайте на для версии 3.0.0 вот такой файл конфигурации как показано тут: https://pyowm.readthedocs.io/en/latest/v3/code-recipes.html
 
  • Мне нравится
Реакции: rasul.islyamgali

rasul.islyamgali

Новичок
Пользователь
Фев 17, 2021
1
0
1
Но, лучше всего создайте на для версии 3.0.0 вот такой файл конфигурации как показано тут: https://pyowm.readthedocs.io/en/latest/v3/code-recipes.html
Спасибо большое. Зарегался, чтобы сказать вам спасибо) Полдня искал решение.
 

Форум IT Специалистов