Skip to main content

A Python wrapper around OpenWeatherMap web APIs

Project description

logo

PyOWM

A Python wrapper around OpenWeatherMap web APIs

PyPI version PyPI - Downloads
PyPI - Python Version
Latest Release Documentation Build Status Coverage Status
Buy Me A Coffee Say Thanks!

What is it?

PyOWM is a client Python wrapper library for OpenWeatherMap (OWM) web APIs. It allows quick and easy consumption of OWM data from Python applications via a simple object model and in a human-friendly fashion.

PyOWM runs on Python 3.7+

Former Dark Sky API users: you can can use PyOWM to get OpenWeatherMap's OneCall API data as an easy replacement to Dark Sky

What kind of data can I get with PyOWM ?

With PyOWM you can integrate into your code any of the following OpenWeatherMap web APIs:

  • Weather API v2.5 + OneCall API, providing current weather data, weather forecasts, weather history
  • Agro API v1.0, providing soil data and satellite imagery search and download
  • Air Pollution API v3.0, providing data about CO, O3, NO2 and SO2
  • UV Index API v3.0, providing data about Ultraviolet exposition
  • Stations API v3.0, allowing to create and manage meteostation and publish local weather measurements
  • Weather Alerts API v3.0, allowing to set triggers on weather conditions and areas and poll for spawned alerts
  • Image tiles for several map layers provided by OWM
  • Geocoding API v1.0 allowing to perform direct/reverse geocoding

In case of trouble...

Please read the FAQ before filing a new issue on GitHub! There are many common issues, therefore a fix for your issue might come easier than you think

Get started

API key

As OpenWeatherMap APIs need a valid API key to allow responses, PyOWM won't work if you don't provide one. This stands for both free and paid (pro) subscription plans. You can signup for a free API key on the OWM website Please notice that the free API subscription plan is subject to requests throttling.

Example

With a free OWM API Key:

from pyowm import OWM
from pyowm.utils import config
from pyowm.utils import timestamps

# ---------- FREE API KEY examples ---------------------

owm = OWM('your free OWM API key')
mgr = owm.weather_manager()


# Search for current weather in London (Great Britain) and get details
observation = mgr.weather_at_place('London,GB')
w = observation.weather

w.detailed_status         # 'clouds'
w.wind()                  # {'speed': 4.6, 'deg': 330}
w.humidity                # 87
w.temperature('celsius')  # {'temp_max': 10.5, 'temp': 9.7, 'temp_min': 9.0}
w.rain                    # {}
w.heat_index              # None
w.clouds                  # 75

# Will it be clear tomorrow at this time in Milan (Italy) ?
forecast = mgr.forecast_at_place('Milan,IT', 'daily')
answer = forecast.will_be_clear_at(timestamps.tomorrow())

# ---------- PAID API KEY example ---------------------

config_dict = config.get_default_config_for_subscription_type('professional')
owm = OWM('your paid OWM API key', config_dict)

# What's the current humidity in Berlin (Germany) ?
one_call_object = mgr.one_call(lat=52.5244, lon=13.4105)
one_call_object.current.humidity

Installation

Install with pip for your ease:

$ pip install pyowm

There are alternatives: setuptools, Windows installers and common Linux package managers such as Yaourt (Arch Linux) YaST/Zypper (OpenSuse) (please refer to the documentation for more detail)

Eager to fetch the very latest updates to PyOWM? Install the development trunk (which might be unstable). Eg on Linux:

$ git clone https://github.com/csparpa/pyowm.git
$ cd pyowm && git checkout develop
$ pip install -r requirements.txt && python setup.py install

Documentation

The library software API documentation is available on Read the Docs.

The Code recipes section comes in handy!

Community & Contributing

Here are some cool projects that use PyOWM

Join the PyOWM public Slack team by signing up here

Contributors (coding, testing, packaging, reporting issues) are welcome! See the the official documentation website for details or the CONTRIBUTING.md file for a quick primer.

License

MIT license

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyowm-3.3.0.tar.gz (4.5 MB view details)

Uploaded Source

Built Distributions

pyowm-3.3.0-py3.9.egg (4.7 MB view details)

Uploaded Source

pyowm-3.3.0-py3.8.egg (4.7 MB view details)

Uploaded Source

pyowm-3.3.0-py3.7.egg (4.7 MB view details)

Uploaded Source

pyowm-3.3.0-py3-none-any.whl (4.5 MB view details)

Uploaded Python 3

File details

Details for the file pyowm-3.3.0.tar.gz.

File metadata

  • Download URL: pyowm-3.3.0.tar.gz
  • Upload date:
  • Size: 4.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/26.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.49.0 importlib-metadata/4.11.0 keyring/21.4.0 rfc3986/1.4.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for pyowm-3.3.0.tar.gz
Algorithm Hash digest
SHA256 8196f77c91eac680676ed5ee484aae8a165408055e3e2b28025cbf60b8681e03
MD5 f0dd46735da030116969a05a14c0f47b
BLAKE2b-256 435a0f44ccc4b81d23b9c84c821532e269727a64f3335c4231c9c16702809719

See more details on using hashes here.

File details

Details for the file pyowm-3.3.0-py3.9.egg.

File metadata

  • Download URL: pyowm-3.3.0-py3.9.egg
  • Upload date:
  • Size: 4.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/26.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.49.0 importlib-metadata/4.11.0 keyring/21.4.0 rfc3986/1.4.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for pyowm-3.3.0-py3.9.egg
Algorithm Hash digest
SHA256 1a4dbca50c5856044de635df3c4f70c334bbba130ce8fb43eaf2892b1a4d7010
MD5 17b0d1c639a1151bc09a04b4919265a8
BLAKE2b-256 1f2fadf85fe1788af7df7db3a413469986cef3197bb7880dbb210ff6e24e794a

See more details on using hashes here.

File details

Details for the file pyowm-3.3.0-py3.8.egg.

File metadata

  • Download URL: pyowm-3.3.0-py3.8.egg
  • Upload date:
  • Size: 4.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/26.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.49.0 importlib-metadata/4.11.0 keyring/21.4.0 rfc3986/1.4.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for pyowm-3.3.0-py3.8.egg
Algorithm Hash digest
SHA256 c73dcf590ced0860e5b39fb43f56098329ef6b479526f91e558e677b1dd5cc37
MD5 2afe728d4c0d21fd9894be9cd9afbd45
BLAKE2b-256 2653e83f1dfd3f6739bbdbe6ed519dab288828dda75227044cbd93f1ddd99f6c

See more details on using hashes here.

File details

Details for the file pyowm-3.3.0-py3.7.egg.

File metadata

  • Download URL: pyowm-3.3.0-py3.7.egg
  • Upload date:
  • Size: 4.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/26.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.49.0 importlib-metadata/4.11.0 keyring/21.4.0 rfc3986/1.4.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for pyowm-3.3.0-py3.7.egg
Algorithm Hash digest
SHA256 7ae83dad89998952b7244df89876732dc23c00e011defb9b64ec3e28c62ac76f
MD5 9ac1aaf93e06ab36e01f04c5653890fb
BLAKE2b-256 a9919eee01a3d956f7d20b79c61a9d616a6985669501e1d4cb7981bf61bb642d

See more details on using hashes here.

File details

Details for the file pyowm-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: pyowm-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/26.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.49.0 importlib-metadata/4.11.0 keyring/21.4.0 rfc3986/1.4.0 colorama/0.4.3 CPython/3.8.10

File hashes

Hashes for pyowm-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86463108e7613171531ba306040b43c972b3fc0b0acf73b12c50910cdd2107ab
MD5 07b9f44da1e96e420f84efc4f9ce7821
BLAKE2b-256 6e881279817aa7f5988a2ff42a6755fd371f3c1806aca377cb63b3d16684b174

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page