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).

Writing code for Python 2 and 3

IPython 6 requires Python 3, so our compatibility module IPython.utils.py3compat is deprecated and will be removed in a future version. In most cases, we recommend you use the six module to support compatible code. This is widely used by other projects, so it is familiar to many developers and thoroughly battle-tested.

Our py3compat module provided some more specific unicode conversions than those offered by six. If you want to use these, copy them into your own code from IPython 5.x. Do not rely on importing them from IPython, as the module may be removed in the future.

See also

Porting Python 2 code to Python 3

Official information in the Python docs.


A tool which helps make code compatible with Python 3.


Another compatibility tool, which focuses on writing code for Python 3 and making it work on Python 2.