Project Jupyter Overview
Project Jupyter is an open-source initiative that provides interactive computing tools for working with Python and dozens of other languages. Its name combines the three core programming languages of data science — Julia, Python, and R — and also references Galileo's notebooks in which he recorded his discovery of Jupiter's moons. Jupyter grew out of the IPython project in 2014: IPython itself remained the interactive Python shell, while language-agnostic parts such as the browser notebook became the Jupyter Notebook.
The Three Main Interfaces
Jupyter ships with three interfaces that share the same underlying kernel protocol:
- IPython shell — a command-line REPL with tab completion, object introspection, and magic commands, running in the terminal.
- Jupyter Notebook / QtConsole — the browser notebook combines code, rich output, and markdown text in cells, while QtConsole offers the same kernel connection in a native desktop interface with inline graphics.
- JupyterLab — the next-generation interface that arranges notebooks, terminals, text editors, and file browsers side by side in a flexible workspace.
Kernels and the Notebook Format
A kernel is the process that executes the code you type. The default kernel is ipykernel, which runs Python through IPython, but kernels for R, Julia, Ruby, Haskell, and many other languages are available. Whatever interface you use, your keystrokes travel to the kernel over the ZeroMQ-based Jupyter Message Protocol, and results stream back for display.
Notebooks are stored as plain-text JSON files with the extension .ipynb. Each cell — code or markdown — plus its output is saved in the file, so experiments, plots, and explanations travel together. Because the format is text, notebooks diff well in version control and can be converted to HTML, PDF, slides, or executable scripts with nbconvert:
jupyter nbconvert --to html analysis.ipynb
jupyter nbconvert --to script analysis.ipynb
Installing and Getting Help
The simplest way to install everything is the jupyter meta-package, which pulls in the notebook, console, kernel, and conversion tooling:
pip install jupyter
After installation, the jupyter command lists all available subcommands, and jupyter --version reports the versions of the installed components. Asking the IPython shell for help is equally simple — a question mark after any name prints its documentation:
In [1]: len?
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Summary
Project Jupyter unifies the IPython shell, Notebook, QtConsole, and JupyterLab around a common kernel architecture and the portable .ipynb format, making it the de facto standard environment for interactive data science and scientific computing in Python.