Favicon of notebook

notebook

A web-based notebook app for interactive computing that mixes runnable code, output, and text, with language support provided by separate kernels.

Jupyter Notebook is a web-based environment for interactive computing, letting you mix code, output, and narrative text in a single document. It's the language-agnostic notebook application at the center of Project Jupyter, aimed at anyone doing exploratory data analysis, teaching, or literate programming, regardless of which programming language they're working in.

The project traces its lineage back to the IPython notebook. In 2015, what the README calls "The Big Split" separated the language-agnostic notebook interface from language-specific code such as the IPython kernel for Python, so that the notebook application could keep evolving independently while individual language kernels are developed and maintained in their own repositories by their own communities.

Key features

  • Web-based interactive computing: run code, view output such as plots and rich media, and write explanatory text side by side in the browser.
  • Language-agnostic core: the notebook application itself is language-independent. Language-specific execution happens through separate kernels, such as the Python IPython kernel, which are maintained in their own repositories.
  • Two actively maintained major versions: Classic Notebook v6 and Notebook v7, described as the two most recently released major versions. Notebook v5 is called out as no longer maintained, with users advised to upgrade.
  • Notebook v7 architecture: built on JupyterLab's frontend components and the Jupyter Server backend, described in the README as a significant change from earlier notebook versions.
  • Classic Notebook v6 in maintenance mode: only maintenance and security fixes land on the 6.5.x branch, and it depends on the nbclassic package for its HTML, JavaScript, and CSS assets, with new feature work focused on v7 instead.
  • Binder-ready: the repository is set up to launch directly in a hosted, no-install environment through mybinder.org, useful for trying it out without a local setup.
  • Community governance: follows the Jupyter Community Guides and Code of Conduct shared across all Jupyter subprojects, with a core team coordinating development on GitHub.
  • Shared copyright model: each contributor retains copyright over their individual contributions, while the codebase as a whole is treated as the collective copyright of the Jupyter Development Team, distributed under the Modified BSD License.

Ideal use cases

Jupyter Notebook fits data analysis, scientific computing, teaching, and documentation workflows where you want to interleave runnable code with its output and surrounding explanation. Because the notebook format and application are language-agnostic, it works across the many languages that have a Jupyter kernel available, not just Python.

If you rely on custom notebook extensions written for Notebook v5 or Classic Notebook v6, be aware that they are not compatible with Notebook v7, since v7 is built on a different architecture combining JupyterLab components with Jupyter Server. In that case, either stay on the maintained 6.5.x branch until you can migrate your extensions, or plan for that migration work up front. Anyone still on Notebook v5 should upgrade, since the README states it's no longer maintained at all.

It's also a reasonable starting point if you just want to see what a Jupyter notebook looks like before installing anything locally. The repository is wired up to launch on mybinder.org, which spins up a temporary hosted environment you can experiment in directly from a browser.

Installation

Install Jupyter Notebook with pip:

pip install notebook

Then launch it locally:

jupyter notebook

Running it on a remote server requires additional configuration before starting the server. See the "Running a notebook server" guide in the Jupyter Server documentation for the steps involved, since exposing it publicly without configuration is not safe.

If you want to work on Jupyter Notebook itself rather than just use it, the project's CONTRIBUTING.md file covers how to set up a local development installation.

Tags:

Frequently asked questions

Share:

Stars
13.2K
Forks
5.7K
Last commit
1 day ago
Repository age
11 years
License
BSD-3-Clause
Self-hosted
No
Activity score
83/100
View Repository
Built with:

Similar to notebook

Favicon

 

  
  
Favicon

 

  
  
Favicon