IDAPython and Python 3

As of now (IDA version 7.3), IDA ships with an IDAPython plugin, that is compiled against, and compatible with Python 2.7.

The problem: Python 2.x end-of-life

The Python authors have decided that Python 3 has been available for long enough, to drop support for Python 2.x.

That effectively means that since Python 2.x will be unmaintained, it will gradually disappear from the landscape.

Moving IDAPython to Python 3

Work has begun (in fact, work is even finished) here at Hex-Rays to make IDAPython compilable, and compatible with Python 3.

The road ahead

IDA 7.4: IDAPython for Python 2.7 by default, opt-in for Python 3.x

When IDA 7.4 is to be released, it will come with precompiled builds of IDAPython not only for Python 2.7, but also for a variety of Python 3.x versions (we haven't settled for a set of versions just yet.)

By default, IDA 7.4 will install IDAPython for Python 2.7, but users will have the opportunity to pick an alternative build that runs against their Python 3.x installation.

IDA 7.?: [likely] IDAPython for Python 3.x by default, opt-in for Python 2.7

In later releases, it's likely going to be the other way around: the installer will offer to install IDAPython for 3.x by default, and users will have the opportunity to pick IDAPython for Python 2.7 if they really need it.

IDA 7.?: IDAPython for Python 3.x only

Further down the road, as Python 2.7 is on its way out, it simply won't make sense to support it anymore. Thus, the installer will only offer to install IDAPython for Python 3.x.

What it means for script/plugin authors

When IDA 7.4 comes out, IDAPython script and/or plugin authors are encouraged to install IDAPython for Python 3.x (possibly along with another IDA 7.4 install, that uses IDAPython for Python 2.7!), and make sure their scripts and/or plugins work properly there.

On a related noteā€¦

Please also see this annoucement regarding the removal of IDAPython's "IDA 6.x" compatibility layer