This documentation covers a development version of IPython. The development version may differ significantly from the latest stable release.


This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7.

If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release).

4.x Series

IPython 4.2

IPython 4.2 (April, 2016) includes various bugfixes and improvements over 4.1.

  • Fix ipython -i on errors, which was broken in 4.1.

  • The delay meant to highlight deprecated commands that have moved to jupyter has been removed.

  • Improve compatibility with future versions of traitlets and matplotlib.

  • Use stdlib shutil.get_terminal_size() to measure terminal width when displaying tracebacks (provided by backports.shutil_get_terminal_size on Python 2).

You can see the rest on GitHub.

IPython 4.1

IPython 4.1.2 (March, 2016) fixes installation issues with some versions of setuptools.

Released February, 2016. IPython 4.1 contains mostly bug fixes, though there are a few improvements.

  • IPython debugger (IPdb) now supports the number of context lines for the where (and w) commands. The context keyword is also available in various APIs. See PR PR #9097

  • YouTube video will now show thumbnail when exported to a media that do not support video. (PR #9086)

  • Add warning when running ipython <subcommand> when subcommand is deprecated. jupyter should now be used.

  • Code in %pinfo (also known as ??) are now highlighter (PR #8947)

  • %aimport now support module completion. (PR #8884)

  • ipdb output is now colored ! (PR #8842)

  • Add ability to transpose columns for completion: (PR #8748)

Many many docs improvements and bug fixes, you can see the list of changes

IPython 4.0

Released August, 2015

IPython 4.0 is the first major release after the Big Split. IPython no longer contains the notebook, qtconsole, etc. which have moved to jupyter. IPython subprojects, such as IPython.parallel and widgets have moved to their own repos as well.

The following subpackages are deprecated:

  • IPython.kernel (now jupyter_client and ipykernel)

  • IPython.consoleapp (now jupyter_client.consoleapp)

  • IPython.nbformat (now nbformat)

  • IPython.nbconvert (now nbconvert)

  • IPython.html (now notebook)

  • IPython.parallel (now ipyparallel)

  • IPython.utils.traitlets (now traitlets)

  • IPython.config (now traitlets.config)

  • IPython.qt (now qtconsole)

  • IPython.terminal.console (now jupyter_console)

and a few other utilities.

Shims for the deprecated subpackages have been added, so existing code should continue to work with a warning about the new home.

There are few changes to the code beyond the reorganization and some bugfixes.

IPython highlights:

  • Public APIs for discovering IPython paths is moved from IPython.utils.path to IPython.paths. The old function locations continue to work with deprecation warnings.

  • Code raising DeprecationWarning entered by the user in an interactive session will now display the warning by default. See PR #8480 an #8478.

  • The --deep-reload flag and the corresponding options to inject dreload or reload into the interactive namespace have been deprecated, and will be removed in future versions. You should now explicitly import reload from IPython.lib.deepreload to use it.