43

After the ipython notebook project renamed to jupyter, I always think that ipython notebook is the same as jupyter notebook and ipython shell is just an alias of jupyter console. Today I realize that ipython does not have connect_info magic defined and therefore is not able to be connected to from different backends.

I have the following component installed in my conda:

ipython                   6.1.0                    py36_0    defaults
jupyter                   1.0.0                    py36_4    defaults
jupyter_client            5.2.3                    py36_0    defaults
jupyter_console           5.2.0            py36he59e554_1    defaults
jupyter_contrib_core      0.3.3                    py36_1    conda-forge
jupyter_contrib_nbextensions 0.5.0                    py36_0    conda-forge
jupyter_core              4.4.0            py36h7c827e3_0    defaults

I have the following questions:

  1. What is the relation between the ipython of this version and jupyter console of this version?
  2. Does the ipython notebook (deprecated as in ipython 6.1.0) another share some components with jupyter libraries; or ipython notebook is still self-contained?
  3. Do ipython and jupyter have any dependencies?
doraemon
  • 2,296
  • 1
  • 17
  • 36

1 Answers1

32

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
Inactivist
  • 9,997
  • 6
  • 29
  • 41
ivan_pozdeev
  • 33,874
  • 19
  • 107
  • 152
  • 5
    thank you very much for your reply. The [visual overview of projects](http://jupyter.readthedocs.io/en/latest/architecture/visual_overview.html) shows the dependency clear. From both the figure and your reply, it says ipykernel depends on ipython; instead of the other way around. This is interesting. I thought that ipython would be a shell communicating with the core -- ipykernel, the same way as jupyter does. But it is not. – doraemon Aug 08 '18 at 03:48
  • 2
    Thanks for putting the text right from the links, those pages are gone now, but your answer still exists :) – Uylenburgh Nov 14 '20 at 19:10
  • 3
    Link seems to be [here](https://jupyter.readthedocs.io/en/latest/projects/architecture/content-architecture.html) now. – hd1 Aug 05 '21 at 06:33