Jupyter NbClassic#
Introduction#
The nbclassic package is the implementation of the classic Jupyter Notebook 6 as a Jupyter Server extension. As proposed in the accepted Jupyter Enhancement Proposal #79 the development of this package is due to plans being carried out to create a Notebook 7, that is based on the modern JupyterLab code-base.
While Notebook 7 provides a user experience equivalent to that of the classic Notebook 6, the technology stack used is incompatible with that which many Jupyter Notebook users have developed their Jupyter Notebook extensions with. Users may find themselves in need of a way to continue using the Jupyter Notebook 6 tech-stack as they transition to using the Jupyter Notebook 7. The NbClassic package intends to address that need.
You can read more about the migration impacts and coexistence of NbClassic and Notebook package on the NbClassic and Notebook migration plan page.
NbClassic Usage#
Installation#
Installing from PyPI:
pip install nbclassic
This will automatically enable the extension in Jupyter Server.
Launch directly:
jupyter nbclassic
Alternatively, you can run Jupyter Server and visit the /tree endpoint:
jupyter server
Configuration#
To create a jupyter_nbclassic_config.py file in the .jupyter directory you can use the following command:
$ jupyter nbclassic --generate-config
Options#
You can view a list of the available options by typing:
$ jupyter nbclassic --help
NbClassic Development#
Nbclassic is the package that holds the UI components of the classic Jupyter Notebook 6 and serves this UI through the server endpoints provided by Jupyter Server.
NbClassic 1.3.2 contained new paths for the static assets of the classic Notebook. This was done to allow for the complete removal of bower components and the use of npm packages. This change broke the ability to serve the classic Notebook static assets from the original endpoints. NbClassic 1.3.3 introduces the use of the Copy Webpack Plugin to copy the static assets to the legacy paths.
Jupyter Server Extensions - Authoring a basic server extension
The jupyter/notebook Repository: The original jupyter/notebook GitHub repository now holds the codebase for the new Jupyter Notebook (version 7).
NbClassic Timeline#
As proposed in the JEP #79, the nbclassic package will continue to be supported with critical security fixes in the transition period as users move to using the more modern Jupyter Notebook 7.
Porting Notebook 6 Extensions: Work being done in parallel. ou can find a helpful list of classical Notebook extensions and corresponding Jupyterlab extensions if available at the Jupyterlab-contrib website.
Known issues#
Bellow are some known bugs and issues with the NbClassic project. These are items that may be of particular interest to users migrating from notebook to nbclassic.
1. #140 Error using jupyter_nbextensions_configurator with nbclassic is a known issue with partial fix Support nbclassic while updating the static path pending to be merged into the Jupyter-contrib/jupyter_nbextensions_configurator repository.
Once a release with this fix is available, users will be able to activate the extension with the following commands:
$ pip install 'jupyter_nbextensions_configurator @ git+https://github.com/datalayer-externals/jupyter-notebook-configurator.git@fix/nbclassic#egg=jupyter_nbextensions_configurator' $ jupyter nbclassic-extension install --sys-prefix --py jupyter_nbextensions_configurator --overwrite $ jupyter nbclassic-extension enable --sys-prefix --py jupyter_nbextensions_configurator $ jupyter nbclassic-serverextension enable --sys-prefix --py jupyter_nbextensions_configurator