By now Python users everywhere are painfully aware that Python 2 has reached the end of its lifespan. For Pythonistas, the countdown to January 1, 2020 was about more than watching the ball drop in Times Square; it was also about migrating to Python 3 where possible and mitigating the effects of Python 2 losing official support.
So what’s this you might have heard about Python 2 now being retired in April 2020? Actually, this was always the plan.
According to PEP 373, the official Python 2.7 release schedule document, January 1, 2020, was marked as the day when Python 2.7 would undergo “code freeze.” This means Python 2.7.18—the last Python 2 release—would no longer receive additions or bug fixes.
From January 2020 through April 2020, the Python development team will test the final, frozen version of Python 2.7.18 and ensure that it has no regressions. Any changes made during this window will only be to ensure that the release candidates and final release have no known bugs.
Finally, in mid-April 2020, Python 2.7.18 will be released, and all future development of Python 2 by the core Python development team will cease. All existing deployments of Python 2—both Python 2.7.18 and earlier Python 2 versions—will continue to run as-is; they just won’t receive any further bug fixes or feature additions by the core Python team.
If you’re still using Python 2, whether out of habit or because your environment won’t let you use anything else, read our Python 2 EOL survival guide to learn how best to upgrade, mitigate, or at the very least cope with the plans for Python 2’s end of life.