As of January 1st, 2020, Python 2.7 has officially reached the end of life and will no longer receive security updates, bug fixes, or other improvements going forward. Released in 2000, Python 2.7 has been used by developers, administrators, and security professionals for 20 years. While Python 3 was released in 2006, due to the number of users continuing to use 2.7, the Python team decided to support both development branches.
Originally slated to be retired in 2015, the development team pushed the sunset of Python 2.7 to 2020. To focus on Python 3 and increase the speed of its development and bug fixes, the development team has now sunset Python 2.7 and the team recommends that all users upgrade to Python 3 to continue receiving important updates.
“We are volunteers who make and take care of the Python programming language. We have decided that January 1, 2020, will be the day that we sunset Python 2. That means that we will not improve it anymore after that day, even if someone finds a security problem in it. You should upgrade to Python 3 as soon as you can.”
Python does plan on releasing one more version of Python 2.7 in April 2020, which will be its final release. This release will include bug and security fixes that were developed in 2019, and possibly later ones as determined by the release manager, to ensure the stability of the final release.
For those who require Python 2.7 and do not wish to upgrade their scripts or applications, they can switch to PyPy, which will continue to support Python 2.7 after 2020. This, though, may not be fully compatible as third-party developers update their libraries to support Python 3.
Linux distributions and the sunset of Python 2.7
As Python 2.7 reaches the end of life, Linux distributions are also changing how they will continue to support the legacy version of Python. Most of the distributions are following the same practice of adding upgraded packages for dependencies and libraries that support Python 3.x with the eventual goal of switching to Python 3 as the default version.
This process will take quite some time, so Python 2.7 will continue to be offered.
Red Hat has stated that even though the Python Software Foundation (PSF) has retired Python 2.7, they will continue to support it through the normal RHEL lifecycle.
“Just because the PSF consider Python 2 “unsupported” does not mean that Python 2 is “unsupported” within RHEL.”
For Red Hat Enterprise Linux 8, the Python 2.7 package will be supported until June 2024. After this date, Red Hat will recommend that users upgrade to Python 3, but customers may continue to use 2.7 in a self-supported manner.
“After this date, customers are encouraged to upgrade to a later Python release such as Python 3. Customers may also continue with Python 2.7 as self-supported without official Red Hat Support.”
Debian and Ubuntu
Both Debian and Ubuntu have started updating Python 2 libraries to their Python 3 equivalents in the preparation of the sunset of Python 2.7. As of Debian Buster (10x) and Ubuntu 18.04 LTS, Python 3 is the default version, but Python 2.7 will still be available for those wishing to install it.
Like the other distributions, Fedora has been updating Python 2 packages to the Python 3 equivalents. In the current release of Fedora 31, Python 3.6 is the default version installed, though. Python 2.7 is still available as an installable package.
Like Ubuntu, Kali Linux is following Debian’s lead and has begun adding support for packages upgraded to Python 3. Once all packages and dependencies are upgraded to Python 3, Kali will eventually remove Python 2.x.