IPython 5.0-LTS Released
Written by Janet Swift   
Monday, 11 July 2016

IPython 5 is the first version to get Long term Support (hence the LTS name). It features a major upgrade to the terminal interface with new editing facilities which are provided by a cross-platform library.

Until last year IPython used to refer to an open source shell for interactive and parallel computing widely used in scientific computing, the key component of which is a browser-based notebook, which could be used from many languages. Its name was changed to Jupyter in 2015 and now IPython refers only to Python kernel for Jupyter and the interactive Python shell. Jupyter Console 5.0, compatible with IPython 5.0 was also recently released.



The announcement of the IPython 5.0 release on the Jupyter blog explains the emergence of an improved interface as a consequence of IPython's new found independence:

Decoupling IPython from the Jupyter Notebook package has allowed the core team to focus on improving the command line interface independently of the notebook. The awkward dependencies on pyreadline for Windows and gnureadline for Mac prompted Thomas Kluyver to replace the old machinery with a brand new pure-python readline replacement: prompt_toolkit.

The prompt_toolkit package created by Jonathan Slenders recently reached version 1.0. Thanks to its use IPython now supports: 

  • Syntax highlighting as you type
  • Real multi-line editing (up and down arrow keys move between lines)
  • Multi-line paste without breaking indentation or immediately executing code
  • Better code completion interface 
  • Optional mouse support



The 5.x Series notes state:

The overhaul of the terminal interface will probably cause a range of minor issues for existing users. This is inevitable for such a significant change, and we’ve done our best to minimise these issues.

It goes on to make suggestions for handling changes.

IPython also introduces the following backwards incompatible changes:

  • The %install_ext magic function, deprecated since 4.0, has now been deleted. You can distribute and install extensions as packages on PyPI.
  • Callbacks registered while an event is being handled will now only be called for subsequent events; previously they could be called for the current event. Similarly, callbacks removed while handling an event will always get that event. 
  • Integration with pydb has been removed since pydb development has been stopped since 2012, and pydb is not installable from PyPI.
  • The autoedit_syntax option, which has apparently been broken for many years, has been removed

One reason for IPython 5.x having long term support, with fixes for critical bugs by the core team until the end of 2017 and beyond that in response to pull requests, is that it is the last major version to support Python 2.  IPython 6.x will require Python 3.

With regard to this decision Matthias Bussonnier writes:

If you are a Python 2 user, be reassured, we will make sure that upgrading does not unexpectedly install IPython 6.x and break your system. You can decide to stay for a longer period of time on IPython 5.x LTS and decide to leapfrog a few IPython versions once you migrate to Python 3, though we recommend keeping up to date with the latest stable versions as they are released, and of course to migrate to Python 3 when possible.

IPython is the first IPython/Jupyter project to drop support for Python 2, but you can expect other components of IPython/Jupyter to follow. Since its inception, JupyterHub for example as always been Python 3 only.

It is important to note that users will always be able to use a Python 2 kernel with the Jupyter Notebook, even when all of our projects have transitioned to Python 3: as part of our LTS commitment, we will make any necessary updates to the IPython kernel so it can continue to work in a Jupyter Notebook for the duration of our LTS support.

He also notes that IPython has signed the  which is a pledge to drop support for Python 2.7 no later than 2020 to coincide with the Python development team's own target for ceasing support for the Python 2.x branch. 


More Information

Release of IPython 5.0

IPython 5.x Series 

Python 3 Statement

Related Articles

Jupyter 4.0 Completed By Release of IPython 4.0

IPython 3.0 Released 

Python 3 Gains Support and Enthusiasm

Python 3 For Science - A Survey


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.



FORTRAN and COBOL Re-enter TIOBE Index

The TIOBE Index sets out to reflect the relative popularity of  computer languages so it comes as something of a surprise to see two languages dating from the 1950's in this month's Top 20.

Two New Resources Tailored To Spring Developers

Spring Academy Pro is now freely available and Spring Builders is a new meeting point to discuss everything Spring related.

More News


raspberry pi books



or email your comment to: comments@i-programmer.info

Last Updated ( Sunday, 23 April 2017 )