Architecture Guides — Jupyter Documentation has the authoritative info on how IPython and Jupyter are connected and related.
Specifically, as per Migrating from IPython Notebook — Jupyter Documentation:
The Big Split moved IPython’s various language-agnostic components under the Jupyter umbrella. Going forward, Jupyter will contain the language-agnostic projects that serve many languages. IPython will continue to focus on Python and its use with Jupyter.
Jupyter’s architecture includes frontends (web or console) and backends (kernels for various languages). IPython console is only about Python and terminal. “IPython Notebook”, if it’s still a thing (it doesn’t work out of the box if I pip install ipython
as of IPython 5.5.0), is probably a rudiment of the moved components for backward compatibility.
IPython is a dependency of Jupyter:
> pip show jupyter
<...>
Requires: ipywidgets, qtconsole, nbconvert, notebook, jupyter-console, ipykernel
> pip show ipython
<...>
Required-by: jupyter-console, ipywidgets, ipykernel