Python 3.9
This version has reached end of life and no longer receives updates.
October 5, 2020
May 17, 2022
October 31, 2025
3.9.25 (October 31, 2025)
About Python 3.9
Python 3.9 introduced dictionary merge operators, type hinting generics in standard collections, and the zoneinfo module. It entered security-only maintenance and is approaching end of life.
Key Changes in Python 3.9
- ●Dictionary merge (
|) and update (|=) operators - ●Type hinting with standard collections (
list[int]instead ofList[int]) - ●New
zoneinfomodule for IANA timezone database access - ●String methods:
removeprefix()andremovesuffix() - ●New parser based on PEG (replacing the 30-year-old LL(1) parser)
Breaking Changes
- ▲Several deprecated functions in unittest, random, and importlib removed
- ▲venv module no longer installs setuptools by default
Python 3.9 recently reached end of life on October 31, 2025. This means it no longer receives security patches or bug fixes from the maintainers. If you are still on this version, now is the time to finalize your upgrade plan before the gap between your version and the current release grows wider.
The recommended upgrade path is to Python 3.14. Since Python 3.9 is 5 major versions behind, consider a staged upgrade through intermediate versions to catch breaking changes incrementally rather than all at once. Review the release notes for each intervening major version to identify API changes, deprecated features, and removed functionality that may affect your codebase.
Migration Notes
Upgrading from 3.9 to 3.12+ is a bigger jump. Key issues to watch: the dictionary merge operator is additive (not breaking), but several deprecated APIs were removed in 3.10-3.12. Run your test suite on each intermediate version.
Lifecycle Progress
This version reached end of life October 31, 2025.
All Python Versions
| Version | Released | EOL | Latest | Status |
|---|---|---|---|---|
| 3.14 | October 7, 2025 | October 31, 2030 | 3.14.3 | Active |
| 3.13 | October 7, 2024 | October 31, 2029 | 3.13.12 | Active |
| 3.12 | October 2, 2023 | October 31, 2028 | 3.12.12 | Security Only |
| 3.11 | October 24, 2022 | October 31, 2027 | 3.11.14 | Security Only |
| 3.10 | October 4, 2021 | October 31, 2026 | 3.10.19 | Security Only |
| 3.9 (current page) | October 5, 2020 | October 31, 2025 | 3.9.25 | End of Life |
| 3.8 | October 14, 2019 | October 7, 2024 | 3.8.20 | End of Life |
| 3.7 | June 27, 2018 | June 27, 2023 | 3.7.17 | End of Life |
| 3.6 | December 23, 2016 | December 23, 2021 | 3.6.15 | End of Life |
| 3.5 | September 13, 2015 | September 30, 2020 | 3.5.10 | End of Life |
| 3.4 | March 16, 2014 | March 18, 2019 | 3.4.10 | End of Life |
| 3.3 | September 29, 2012 | September 29, 2017 | 3.3.7 | End of Life |
| 3.2 | February 20, 2011 | February 20, 2016 | 3.2.6 | End of Life |
| 2.7 | July 3, 2010 | January 1, 2020 | 2.7.18 | End of Life |
| 3.1 | June 27, 2009 | April 9, 2012 | 3.1.5 | End of Life |
| 3.0 | December 3, 2008 | June 27, 2009 | 3.0.1 | End of Life |
| 2.6 | October 1, 2008 | October 29, 2013 | 2.6.9 | End of Life |
Frequently Asked Questions
When was Python 3.9 released?
When does Python 3.9 reach end of life?
What is the latest patch version of Python 3.9?
Should I still use Python 3.9?
Related Resources
Get release updates for Python
Breaking changes, security patches, EOL warnings. Monthly digest, no spam.
Free forever. Unsubscribe anytime. We track 50+ technologies.