@salavat00

Не могу указать русский язык, как исправить?

есть код
import pyowm
city = input("Какой город вас интересует?: ")
owm = pyowm.OWM('a99967bc9ee70d5b4bd387902982f400', language = "RU")
observation = owm.weather_at_place(city)
w = observation.get_weather()
temperature = w.get_temperature('celsius')['temp']
print("В городе " + city + " сейчас температура: " + str(temperature) + " по Цельсию.")
print('Погода в указаном городе: ' + w.get_detailed_status())

ошибка
spoiler
5ee6b846d8525313079342.png
  • Вопрос задан
  • 981 просмотр
Пригласить эксперта
Ответы на вопрос 4
ScriptKiddo
@ScriptKiddo
Для pyOWM 3.0.0 требуется указание конфига.
Source

Что-то вроде:

import pyowm
from pyowm.commons.enums import SubscriptionTypeEnum
from pyowm.utils.measurables import kelvin_to_celsius

city = 'Krasnodar'

config = {
    'subscription_type': SubscriptionTypeEnum.FREE,
    'language': 'ru',
    'connection': {
        'use_ssl': True,
        'verify_ssl_certs': True,
        'use_proxy': False,
        'timeout_secs': 5
    },
    'proxies': {
        'http': 'http://user:pass@host:port',
        'https': 'socks5://user:pass@host:port'
    }
}
owm = pyowm.OWM('a99967bc9ee70d5b4bd387902982f400', config=config)
mgr = owm.weather_manager()
observation = mgr.weather_at_place(city)
w = observation.weather

print("В городе " + city + " сейчас температура: " + str(kelvin_to_celsius(w.temp['temp'])) + " по Цельсию.")
print('Погода в указаном городе: ' + observation.location.name)
Ответ написан
Комментировать
total4c
@total4c
Говнокодер
Попробуй указать язык через нижний регистр:
owm = pyowm.OWM('api_key', language="ru")
Ответ написан
samodum
@samodum
Какой вопрос - такой и ответ
Этот код (но с моим ключом) без изменений у меня работает, Python 3.
Попробуй переустановить pyowm
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Не понял о чем речь в ответах выше идет, конечно, кроме одного.

Нет кейворда language, написано же. Не знаю, откуда у вас 3.0 версия библиотеки, у меня 2.10 встала с апдейтом. Возможно, у меня просто версия python ниже нужной.

В любом случае,

class OWM:

    """
    Entry point class providing ad-hoc API clients for each OWM web API.
    :param api_key: the OWM API key
    :type api_key: str
    :param config: the configuration dictionary (if not provided, a default one will be used)
    :type config: dict
    """
    def __init__(self, api_key, config=None):
        assert api_key is not None, 'API Key must be set'
        self.api_key = api_key
        if config is None:
            self.config = cfg.get_default_config()
        else:
            assert isinstance(config, dict)
            self.config = config


OWM не принимает никакого language, вместо него нужен словарь с конфигом.
Предположу, что должно быть так:
owm = pyowm.OWM('a99967bc9ee70d5b4bd387902982f400', {'language': 'ru'})
Ответ написан
Ваш ответ на вопрос

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

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