As per PEP 373, Python 2.7 will cease to be supported in 2020. Like many projects, the Numba team has to consider how to time its own end of Python 2.7 support. Given how deeply Numba must interface with the Python interpreter, supporting both Python 2 and 3 creates quite a development and testing burden. In addition, Numba (specifically via llvmlite) has to deal with some tricky compiler issues on Windows, where LLVM requires Visual Studio 2015 or later, but Python 2.7 extensions must be built with Visual Studio 2008. Needless to say, the goal with this plan is to support our Python 2.7 user base (~13% of conda package downloads and 25-30% of PyPI downloads as of July 2019), but also clearly signal that now is the time to switch to Python 3 if you have not already.
Python 2.7 users of Numba should also be aware of NumPy’s timeline for ending Python 2.7 support. Due to Numba’s tight coupling with NumPy, the NumPy timeline has informed the Numba timeline below.
This timeline was revised in August 2019 to reflect the reality that we wanted to get more improvements into Numba before ending Python 2.7 support. Note that the Numba versions mentioned below are more concrete than the dates.
The end of Python 2.7 support in Numba will be staged:
master
branch. If any critical bug fixes are discovered in
the 0.47.0 release, they will be backported to create 0.47.x patch releases.If there are concerns about the above timeline, please raise an issue in our issue tracker.