Skip to content
A Jupyter - Leaflet.js bridge
Branch: master
Clone or download
martinRenou Merge pull request #408 from tgrout/patch-1
Add keywords to allow for package to be visible in JupyterLab extension manager
Latest commit f87a8c9 Jul 18, 2019


Documentation Binder Join the Gitter Chat

A Jupyter / Leaflet bridge enabling interactive maps in the Jupyter notebook.


Selecting a basemap for a leaflet map:

Basemap Screencast

Loading a geojson map:

GeoJSON Screencast

Making use of leafletjs primitives:

Primitives Screencast

Using the splitmap control:

Splitmap Screencast

Displaying velocity data on the top of a map:

Velocity Screencast

Choropleth layer:

Choropleth Screencast


Using conda:

$ conda install -c conda-forge ipyleaflet

Using pip:

$ pip install ipyleaflet
$ jupyter nbextension enable --py --sys-prefix ipyleaflet  # can be skipped for
notebook 5.3 and above

If you have JupyterLab, you will also need to install the JupyterLab extension:

$ jupyter labextension install jupyter-leaflet

Some users have found that the jupyterlab-manager is also required in jupyterlab if the map does not display.

$ jupyter labextension install @jupyter-widgets/jupyterlab-manager

Installation from sources

For a development installation (requires npm):

$ git clone
$ cd ipyleaflet
$ pip install -e .
$ jupyter nbextension install --py --symlink --sys-prefix ipyleaflet
$ jupyter nbextension enable --py --sys-prefix ipyleaflet
$ jupyter labextension install js  # If you are developing on JupyterLab

Note for developers:

  • the -e pip option allows one to modify the Python code in-place. Restart the kernel in order to see the changes.

  • the --symlink argument on Linux or OS X allows one to modify the JavaScript code in-place. This feature is not available with Windows.

    For automatically building the JavaScript code every time there is a change, run the following command from the ipyleaflet/js/ directory:

    $ npm run watch

    If you are on JupyterLab you also need to run the following in a separate terminal:

    $ jupyter lab --watch

    Every time a JavaScript build has terminated you need to refresh the Notebook page in order to load the JavaScript code again.


To get started with using ipyleaflet, check out the full documentation


We use a shared copyright model that enables all contributors to maintain the copyright on their contributions.

This software is licensed under the BSD-3-Clause license. See the LICENSE file for details.

Related projects

The ipyleaflet repository includes the jupyter-leaflet npm package, which is a front-end component, and the ipyleaflet python package which is the backend for the Python Jupyter kernel.

Similarly, the xleaflet project provides a backend to jupyter-leaflet for the "xeus-cling" C++ Jupyter kernel.

Xleaflet Screencast

You can’t perform that action at this time.