Registry /
web-framework / jupyter-contrib-nbextensions
Install & Compatibility
Where this runs
tested against v0.7.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.920 runs
installs and imports cleanly · install 0.0s · import 0.000s · 319.2MB
glibcpy 3.10–3.920 runs
installs and imports cleanly · install 19.9s · import 0.000s · 303MB
311MB installed
● package 311MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
N/A
✓ This library provides Jupyter Notebook extensions (mostly JavaScript) and `jupyter` subcommands, rather than Python objects for direct import into scripts.
The primary interaction is through command-line tools or the Jupyter Notebook UI, not Python `import` statements for using individual extensions.
This quickstart demonstrates how to install the `jupyter_contrib_nbextensions` Python package and then install its client-side JavaScript and CSS files for the current user. It also ensures the `jupyter_nbextensions_configurator` is enabled, which provides a 'Nbextensions' tab in the Jupyter Notebook interface for easy management of the extensions. While individual extensions can be enabled via command line, the GUI configurator is the recommended way for most users.
# 1. Install the main Python package (if not already done)
pip install jupyter_contrib_nbextensions
# 2. Install the JavaScript and CSS files to the Jupyter data directory
# Use --user for a user-specific installation, or --sys-prefix for a virtual environment.
!jupyter contrib nbextension install --user
# 3. Enable the nbextensions configurator (usually enabled by default with install)
!jupyter nbextensions_configurator enable --user
# 4. Launch Jupyter Notebook and navigate to the 'Nbextensions' tab
# (This step is manual, outside of this script)
# You can then enable individual extensions like 'Table of Contents (2)' or 'Codefolding'.
# Example: To programmatically enable a specific extension (e.g., Codefolding):
# !jupyter nbextension enable codefolding/main --user
print("Jupyter Contrib Nbextensions installed and configurator enabled. Please launch Jupyter Notebook to manage extensions.")
jupyter-contrib-nbextensions --version
Debug
Known issues
breakingJupyter Contrib Nbextensions are NOT compatible with JupyterLab. They are designed exclusively for the classic Jupyter Notebook interface. Users attempting to use them in JupyterLab will find they do not work.fixUse the classic Jupyter Notebook interface. For JupyterLab, search for 'JupyterLab extensions' or 'jupyterlab-contrib' for compatible alternatives.
affects: All versions of jupyter-contrib-nbextensions with all versions of JupyterLab
breakingIncompatibility with newer Jupyter Notebook versions (6.x and above). Many extensions in the configurator may be marked as 'possibly incompatible'. This can lead to unexpected behavior or extensions not loading correctly. Anaconda updates have also been reported to cause issues.fixUsers may need to downgrade their Jupyter Notebook version (e.g., `pip install notebook==5.7.8` or `pip install notebook==6.1.5`). Alternatively, in the Nbextensions tab, uncheck the option 'disable configuration for nbextensions without explicit compatibility' (use with caution).
affects: Jupyter Notebook 6.x and higher (as of 0.7.0 of jupyter-contrib-nbextensions)
gotchaExtensions require a multi-step installation and activation. Installing the Python package (`pip install ...`) is only the first step. The JavaScript/CSS files must then be installed (`jupyter contrib nbextension install ...`), and finally, individual extensions need to be explicitly enabled, often through the 'Nbextensions' tab provided by `jupyter_nbextensions_configurator`.fixAlways follow the complete installation instructions, including the `jupyter contrib nbextension install` command and then enabling extensions via the Jupyter Notebook 'Nbextensions' tab.
affects: All versions
gotchaExtensions may fail to load in large notebooks due to a default `requirejs` timeout. This can manifest as extensions not appearing or not functioning correctly after a notebook with many cells loads.fixIncrease the `requirejs` timeout by adding `window.requirejs.config({waitseconds: 60});` (or a higher value) to your `custom.js` file. Consult Jupyter's documentation for the location of `custom.js`. affects: All versions (dependent on Jupyter Notebook's `requirejs` configuration)
gotchaMigrating from older installations or experiencing issues can result in 'double entries' of extensions in the configurator. This occurs when old extension files are not properly removed during updates or reinstallation.fixUse `jupyter contrib nbextension uninstall --user` (and potentially `--system`) to remove old files, then reinstall. Debug logs from `jupyter notebook --debug` can help identify the location of duplicate files.
affects: Older installations or migration scenarios
Upgrade
Version history
0.7.0latest on PyPI · released Nov 15, 2022
Audit
Dependencies
jupyter_nbextensions_configuratorrequiredProvides a graphical user interface in Jupyter Notebook for enabling, disabling, and configuring individual nbextensions. It is installed as a dependency of `jupyter_contrib_nbextensions` but may need manual enabling.