IPython - Introduction

Project Jupyter is a suite of software products used in interactive computing. IPython was originally developed by Fernando Perez in 2001 as an enhanced Python interpreter. A web based interface to IPython terminal in the form of IPython notebook was introduced in 2011. In 2014, Project Jupyter started as a spin-off project from IPython.

Packages under Jupyter project include −

  • Jupyter notebook − A web based interface to programming environments of Python, Julia, R and many others

  • QtConsole − Qt based terminal for Jupyter kernels similar to IPython

  • nbviewer − Facility to share Jupyter notebooks

  • JupyterLab − Modern web based integrated interface for all products.

Standard distribution of Python comes with a REPL (Read-Evaluate-Print Loop) environment in the form of Python shell with >>> prompt. IPython (stands for Interactive Python) is an enhanced interactive environment for Python with many functionalities compared to the standard Python shell.

Features of IPython

IPython offers more features compared to the standard Python. They are as follows −

  • Offers a powerful interactive Python shell.

  • Acts as a main kernel for Jupyter notebook and other front end tools of Project Jupyter.

  • Possesses object introspection ability. Introspection is the ability to check properties of an object during runtime.

  • Syntax highlighting.

  • Stores the history of interactions.

  • Tab completion of keywords, variables and function names.

  • Magic command system useful for controlling Python environment and performing OS tasks.

  • Ability to be embedded in other Python programs.

  • Provides access to Python debugger.

History and Development

IPython was originally developed by Fernando Perez in 2001. Its current version is IPython7.0.1 which requires Python 3.4 version or higher. IPython 6.0 was the first version to support Python 3. Users having Python 2.7 should work with IPython’s version 2.0 to 5.7

The concept of computational notebooks started in 80s decade when MATLAB and Mathematica were released. These GUI frontends to the interactive shell had features like text formatting, adding graphics, table and adding mathematical symbols. Sage notebook is also a web based notebook.

Creaters of IPython started working on notebook interface for IPython shell in 2005. IPython notebook soon added support of other languages like R and Julia. It was in 2014, that Perez started Jupyter project as a spin-off project from IPython, since IPython project was becoming big with products like notebook server and Qt console added to it.

Since IPython 4.0, all additional components were shifted to Project Jupyter and adding support of other languages to IPython notebook. IPython continues to focus on improvement of its enhanced interpreter feature. It also provides primary kernel to Jupyter notebook frontend.