jupyter-leaflet
ipyleaflet extensions for JupyterLab and Jupyter Notebook
What it is and what it does
jupyter-leaflet is a Python package that brings interactive Leaflet.js maps into Jupyter notebooks and JupyterLab as interactive widgets. It lets you create, manipulate, and display geographic data—basemaps, GeoJSON overlays, markers, and custom Leaflet primitives—directly in notebook cells without leaving your computational environment.
The package acts as a bridge between the Jupyter widget ecosystem and Leaflet's JavaScript mapping library. You define maps and layers in Python, and jupyter-leaflet renders them as interactive web maps in the notebook output. It supports geospatial workflows like choropleth visualization, velocity data overlay, and split-map comparison, making it useful for exploratory geographic analysis, data journalism, and educational notebooks.
Use it for:
- Explore and visualize GeoJSON datasets interactively within a notebook during data analysis.
- Create choropleth maps to show regional statistics or aggregated geographic data.
- Build interactive dashboards combining map layers with Python-computed analysis.
- Compare two map layers side-by-side using the split-map control for change detection.
- Prototype geospatial applications and share them as executable notebooks.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
jupyter-leaflet provides interactive map widgets for Jupyter notebooks and JupyterLab, bridging Jupyter and Leaflet.js to render geospatial data and controls directly in notebook cells.
Yes. Low install friction, active maintenance, no runtime dependencies, and MIT licensing make it a straightforward choice for anyone doing geospatial work in Jupyter. The main caveat is that the frontend widget extension must be available in your Jupyter environment; verify that before installing if you're using a non-standard Jupyter setup.
Install
jupyter-leaflet on PyPI
pip
pip install jupyter-leafletuv
uv add jupyter-leafletpoetry
poetry add jupyter-leafletInstalling jupyter-leaflet
Before you install
Low install friction; pure Python wheel with no runtime dependencies. Actively maintained with recent commits and 1537 repository stars. Supports Python 3.8 through 3.12.
License in practice
MIT license (permissive); you may use, modify, and distribute the package freely, including in commercial projects, provided you include the license notice.
Quickstart
pip install jupyter-leaflet
In a Jupyter notebook:
from jupyter_leaflet import Map
m = Map()
m
Requires Jupyter notebook or JupyterLab environment; the widget frontend must be installed in your Jupyter installation for maps to render.
Verify before relying
- Whether the frontend widget extension is automatically installed with the pip package or requires separate JupyterLab extension installation.
- Performance characteristics when rendering large GeoJSON files or many map layers.
- Compatibility with specific Jupyter versions beyond the Python version support stated.
- Specific basemap options, layer types, and interactive controls available through the API.
Package facts
| License | The MIT License (MIT) Copyright (c) 2014-2018, Project Jupyter Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 427 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 448,508/month — #6,600 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jupyter_leaflet-0.20.0-py3-none-any.whl
Keywords: GIS, graphics, ipython, jupyter, widgets
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
ipyleafletipyleaflet embeds interactive Leaflet maps…
permissive · top 15,000 on PyPI
django-map-widgetsProvides interactive and static map widgets for…
permissive · top 15,000 on PyPI
pydeckPydeck provides Python bindings for deck.gl,…
permissive · top 1,000 on PyPI
widgetsnbextensionProvides the JavaScript frontend and…
permissive · top 1,000 on PyPI
django-leafletIntegrates the Leaflet JavaScript mapping…
copyleft · top 15,000 on PyPI
leafmapLeafmap enables interactive geospatial mapping…
permissive · top 15,000 on PyPI
foliumfolium builds interactive web maps by combining…
permissive · top 5,000 on PyPI
keplerglA Jupyter widget that embeds kepler.gl's…
unclear · top 15,000 on PyPI
ipywidgetsipywidgets provides interactive HTML widgets…
permissive · top 1,000 on PyPI
geemapGeemap provides interactive geospatial analysis…
permissive · top 15,000 on PyPI