{"library":"pyowm","title":"PyOWM: OpenWeatherMap API Wrapper","description":"PyOWM is a Python wrapper library for the OpenWeatherMap web APIs, providing easy access to current weather conditions, forecasts, and historical weather data for various locations worldwide. It is currently at version 3.5.0 and actively maintained, with updates typically released to support new OpenWeatherMap API versions, features, and Python compatibility requirements.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install pyowm"],"cli":null},"imports":["from pyowm import OWM","from pyowm.utils import config, timestamps\nowm = OWM(API_KEY)\nmgr = owm.weather_manager()"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom pyowm import OWM\n\nAPI_KEY = os.environ.get('OWM_API_KEY', 'your-api-key-here')\n\nif not API_KEY or API_KEY == 'your-api-key-here':\n    print(\"WARNING: OWM_API_KEY environment variable not set or is placeholder.\")\n    print(\"Please get a key from openweathermap.org and set it.\")\n    exit()\n\nowm = OWM(API_KEY)\nmgr = owm.weather_manager()\n\ntry:\n    # Search for current weather in a specific city\n    observation = mgr.weather_at_place('London,GB')\n    weather = observation.weather\n\n    print(f\"Current weather in London: {weather.status}, Temperature: {weather.temperature('celsius')['temp']}°C\")\n\n    # Get a One Call API daily forecast (requires One Call API 3.0 compatible key)\n    # For free keys, use 'One Call by Call' subscription, first 1000 calls/day are free.\n    one_call_forecaster = mgr.one_call(lat=51.5074, lon=-0.1278)\n    daily_forecast = one_call_forecaster.forecast_daily\n    if daily_forecast:\n        today = daily_forecast[0]\n        print(f\"Today's forecast: {today.status}, Max Temp: {today.temperature('celsius')['max_temp']}°C\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n","lang":"python","description":"Initialize PyOWM with your OpenWeatherMap API key (preferably from an environment variable). Then, use the `weather_manager` to fetch current weather conditions for a city or get a daily forecast using the One Call API 3.0. A free API key supports basic calls and the first 1000 calls/day for One Call by Call API.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"3.5.0","pypi_latest":"3.5.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.5,"avg_import_s":0.69,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.66,"mem_mb":11,"disk_size":"26.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.49,"mem_mb":11,"disk_size":"27M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.79,"mem_mb":12.3,"disk_size":"29.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":0.73,"mem_mb":12.3,"disk_size":"29M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.77,"mem_mb":12.7,"disk_size":"20.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.75,"mem_mb":12.7,"disk_size":"21M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.76,"mem_mb":13.1,"disk_size":"20.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.75,"mem_mb":13.1,"disk_size":"21M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.61,"mem_mb":10.7,"disk_size":"26.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyowm","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.8,"import_time_s":0.59,"mem_mb":10.7,"disk_size":"27M"}]}}