A recent announcement by the Numpy team has caught the attention of the data science community: the scientific computing library is dropping support for Python 2.7 in favor of Python 3. Since there are currently many numpy-based deep learning dependencies, this decision means that all tools on top of it will lose support for Python 2.7. Numpy isn’t the only tool that has announced plans to drop support for older versions of Python. Pandas and Jupyter Notebook are also on the list.

Numpy statement

The Python core team plans to stop supporting Python 2 in 2020. NumPy has supported Both Python 2 and Python 3 in parallel since 2010, but support for Python 2 became an increasing burden due to limited resources; Therefore, we plan to eventually discontinue support for Python 2. Now that we’re in the final years of community-supported Python 2, NumPy wants to illustrate our plans and aim to help our downstream ecology plan to make the transition as smooth as possible.

Our current plans are as follows:

Python 2 and Python 3 will continue to be fully supported by all versions of NumPy until December 31, 2018. Starting January 1, 2019, all versions of the new feature will only support Python 3. The final version of Support for Python 2 will be designated as long term support (LTS), meaning we will continue to fix bugs and support bug-fixed versions for longer periods of time. Specifically, the community will support it until December 31, 2019.

On January 1, 2020, we will pay tribute to Python 2, and finally community support for the Python 2 supported version will end. However, you can still use it on PyPI indefinitely. If any commercial vendor wishes to extend LTS support, we can have them use the LTS branch of the official NumPy library for coordination.

If you are a NumPy user who still needs Python 2 support in 2020 or beyond, please contact your vendor. If you are a vendor that would like to continue to support NumPy on Python 2 beyond 2020, please contact us. Ideally, we would like you to participate in maintenance prior to the end of LTS to facilitate a smooth transition.

Python team statement

All major projects in the Python Science stack now support Python 3.x and Python 2.7, and many projects have supported both versions for years. Although we continue to develop tools and techniques for efficiently maintaining compatibility, this is still a small but frequent conflict in a lot of code development.

We want to make full use of Python 3 and currently accept cross-compatibility code for a smooth transition, but we do not intend to maintain compatibility indefinitely. Although the transition from Python 2 to Python 3 is not as fast as we would like, it is happening, and more and more people are using, teaching, and recommending Python 3.

Since many people still use Python 2, the developers of the Python language have extended the support period for Python 2.7 to 2015 to 2020. We believe that this is enough time for users to migrate from Python 2, and our project plans to end support for Python 2 by the end of 2020 at the latest. After that, we were able to simplify the code to take advantage of many of the new features of the Python language and the current version of the standard library.

In addition, some of our projects will reduce Python 2.7 support and only fix bugs until 2020, with new feature releases using Python 3. This matches support for the Python language itself, with Version 2.7 of Python only including bug fixes and security improvements.

Third parties may provide paid support for older Python versions of our projects for a longer period of time than we did for older Python versions. We don’t stop this kind of behavior, it’s a core tenet of free, open source software, so it works. However, if you want free first-party support, start migrating to Python 3.

For the above reasons, the following projects will stop supporting Python 2.7 in 2020, in line with the Python development team’s timeline for this.

Tools that support Python 2.x are about to be abandoned

The following projects have explicitly stated that Python 2 support will be dropped by 2020.

The following table shows when multiple projects decided to stop supporting Python 2. The table tells you which version of each project supports Python 2, the release timeline, and when to extend support.

Python’s own timeline: Python Developer’s Guide

The disappearance of Python 2 will orphan many academic tools, and many published results will become irretrievable. While it is possible to port an existing project to Python 3, it means a significant amount of time and money.


Reference content:

Sunsetting Python 2 support in scientific Python projects

numpy/numpy

Heart of the Machine reports