Skip to main content

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

Release files for pyowm 3.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyowm 3.3.0
File Size Uploaded
pyowm-3.3.0.tar.gz 4.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyowm 3.3.0
File
pyowm-3.3.0-py3.9.egg Legacy Egg format - - Details
pyowm-3.3.0-py3.8.egg Legacy Egg format - - Details
pyowm-3.3.0-py3.7.egg Legacy Egg format - - Details
pyowm-3.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.1 MB

Release files / pyowm-3.3.0.tar.gz

Download URL pyowm-3.3.0.tar.gz
Size 4.5 MB
Tags Source
SHA-256 checksum
How to use checksums
8196f77c91eac680676ed5ee484aae8a165408055e3e2b28025cbf60b8681e03
BLAKE2b-256 checksum
How to use checksums
435a0f44ccc4b81d23b9c84c821532e269727a64f3335c4231c9c16702809719
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / pyowm-3.3.0-py3.9.egg

Download URL pyowm-3.3.0-py3.9.egg
Size 4.7 MB
Tags Egg
SHA-256 checksum
How to use checksums
1a4dbca50c5856044de635df3c4f70c334bbba130ce8fb43eaf2892b1a4d7010
BLAKE2b-256 checksum
How to use checksums
1f2fadf85fe1788af7df7db3a413469986cef3197bb7880dbb210ff6e24e794a
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / pyowm-3.3.0-py3.8.egg

Download URL pyowm-3.3.0-py3.8.egg
Size 4.7 MB
Tags Egg
SHA-256 checksum
How to use checksums
c73dcf590ced0860e5b39fb43f56098329ef6b479526f91e558e677b1dd5cc37
BLAKE2b-256 checksum
How to use checksums
2653e83f1dfd3f6739bbdbe6ed519dab288828dda75227044cbd93f1ddd99f6c
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / pyowm-3.3.0-py3.7.egg

Download URL pyowm-3.3.0-py3.7.egg
Size 4.7 MB
Tags Egg
SHA-256 checksum
How to use checksums
7ae83dad89998952b7244df89876732dc23c00e011defb9b64ec3e28c62ac76f
BLAKE2b-256 checksum
How to use checksums
a9919eee01a3d956f7d20b79c61a9d616a6985669501e1d4cb7981bf61bb642d
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / pyowm-3.3.0-py3-none-any.whl

Download URL pyowm-3.3.0-py3-none-any.whl
Size 4.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
86463108e7613171531ba306040b43c972b3fc0b0acf73b12c50910cdd2107ab
BLAKE2b-256 checksum
How to use checksums
6e881279817aa7f5988a2ff42a6755fd371f3c1806aca377cb63b3d16684b174
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

3.5.0

2 release files

3.4.0

2 release files

This release

3.3.0 This release

5 release files

3.2.0

5 release files

3.1.1

4 release files

3.1.0

4 release files

3.0.0

4 release files

2.10.0

6 release files

2.9.0

10 release files

2.8.0

10 release files

2.7.1

7 release files

2.7.0

2.6.1

6 release files

2.6.0

7 release files

2.5.0

6 release files

2.4.0

6 release files

2.3.2

4 release files

2.3.1

4 release files

2.3.0

4 release files

2.2.1

6 release files

2.2.0

5 release files

2.0.0

5 release files

1.2.0

4 release files

1.0.0

3 release files

0.4.1

3 release files

0.4.0

3 release files

0.2.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page