ipylab
Control JupyterLab from Python notebooks.
The goal is to provide access to most of the JupyterLab environment from Python notebooks. For example:
- Adding widgets to the main area
DockPanel
, left, right or top area - Build more advanced interfaces leveraging
SplitPanel
,Toolbar
and other Lumino widgets - Launch arbitrary commands (new terminal, change theme, open file and so on)
- Open a workspace with a specific layout
- Listen to JupyterLab signals (notebook opened, console closed) and trigger Python callbacks
Try it online
Try it in your browser with Binder:
Examples
Add Jupyter Widgets to the JupyterLab interface
Execute Commands
Custom Python Commands and Command Palette
Build small applications
Installation
You can install using pip
:
pip install ipylab
Or with conda
:
conda install -c conda-forge ipylab
To install the JupyterLab extension:
jupyter labextension install @jupyter-widgets/jupyterlab-manager ipylab
Running the examples locally
To try out the examples locally, the recommended way is to create a new environment with the dependencies:
# create a new conda environment
conda create -n ipylab-examples -c conda-forge jupyterlab ipylab ipytree bqplot ipywidgets numpy
conda activate ipylab-examples
# install the JupyterLab extensions
jupyter labextension install @jupyter-widgets/jupyterlab-manager ipylab bqplot ipytree
# start JupyterLab
jupyter lab
Under the hood
ipylab
can be seen as a proxy from Python to JupyterLab over Jupyter Widgets:
Development
# create a new conda environment
conda create -n ipylab -c conda-forge jupyterlab nodejs
# activate the environment
conda activate ipylab
# install the Python package
python -m pip install -e ".[dev]"
# compile the extension
jlpm && jlpm run build
# install the widgets extension and the ipylab extension locally
jupyter labextension install @jupyter-widgets/jupyterlab-manager . --debug
Related projects
There are a couple of projects that also enable interacting with the JupyterLab environment from Python notebooks:
- wxyz: experimental widgets (including
DockPanel
) - jupyterlab-sidecar: add widgets to the JupyterLab right area
- jupyterlab_commands: add arbitrary Python commands to the jupyterlab command palette