Python 2 Officially Hits End of Life, Final Few Fixes Coming April 2020

The End of Life (EOL) deadline for Python 2 arrived with the new year, and the CPython core development community is urging users to migrate to Python 3 as soon as possible.

The last major release, v2.7, is scheduled for April, but after that release, the community will be focusing on Python 3 and providing not bug fixes or security updates for its predecessor. Going forward, Python 3 will be the only major version of CPython that is actively maintained for bugs and security issues.

To be clear, as of January 1, 2020, no new bug reports, fixes or changes will be made to Python 2. However, after Python 2.7.17 was released in October, some additional changes accumulated before the end of 2019 when the core development team froze the 2.7 branch. "As a final service to the community, python-dev will bundle those fixes -- and only those fixes -- into a final 2.7.18 release," the Python Foundation noted in an update. "The release date for 2.7.18 will be in April 2020, because that allows time for the release managers to complete a release candidate and final release."

Nick Coghlan, inaugural Python Steering Council member and author of the Python 3 Q&A, has called Python 2's EOL and the ascendance of Python 3 "a milestone moment for the Python community."

"Ever since the start of active Python 3.0 development efforts in 2006," Coghlan said in a statement, "the announced plan was for it to eventually replace Python 2. Thanks to the combined efforts of an enormous number of contributors across the entire Python ecosystem, Python 3 is now ready for any task that might previously have been handled with Python 2."

The final Python 2.7 maintenance release was originally planned for 2015, but it was delayed for five years "to give people adequate time to migrate and to work closely with vendors and redistributors to ensure that supported Python 3 migration options were available," the Foundation said in a statement. The Python 2 EOL was delayed for so long, in part, because the stricter text model in Python 3 was forcing the resolution of non-trivial Unicode handling issues in the reference interpreter and standard library, and in migrated libraries and applications, the Foundation has said.

Python 3 provides significant improvements to the language and platform, including ground-up support for Unicode and internationalization. It also better expresses the common idioms and patterns in code that make it easier to read and reason about. It also provides improvements in concurrency, fault handling, testing, and debugging, which give developers the opportunity to create more robust and secure applications.

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].