Python · Lifecycle Status

Python End of Life (EOL) Dates & Support Timeline

Complete end-of-life dates, support windows, and security status for all Python versions. Data sourced from endoflife.date and official vendor documentation. Updated at every deploy.

Python 3.10 reaches end of life on October 31, 2026. Plan your migration now — 83 days remaining.
Running an EOL version? Get matched with support options — free ↓
📅 Get reminded before Python 3.10 reaches EOL on October 31, 2026 — alerts 90, 30 & 7 days out.
Google →
Latest Active
3.14.7
3.14 series
Next EOL
3.10
Oct 31, 2026
Active Versions
4
of 17 total
EOL Versions
12
no longer patched
60 / 100
High Risk
EOL Risk Score™  How is this calculated? →
EOL Recency
30/40
Attack Surface
30/30 Critical tier
CISA KEV Exposure
0/20 Not in KEV
Extended Support
0/10 Available
EOL Risk Score™ — proprietary methodology by endoflife.ai. Factors: EOL recency, attack surface breadth, CISA KEV catalog presence, extended support availability. Updated at every build. Methodology →
Release Cycle Timeline
EOL   Warning   Active   Today
Release cycle timeline 20092010201120122013201420152016201720182019202020212022202320242025202620272028202920302.63.03.12.73.23.33.43.53.63.73.83.93.103.113.123.133.14TODAY
12 versions of Python are past end of life — security patches have stopped. Get matched with support →
All Versions
VersionLatest ReleaseRelease DateEOL DateDaysStatus
2.6 2.6.9 Oct 1, 2008 Oct 29, 2013 4667 days past EOL EOL
3.0 3.0.1 Dec 3, 2008 Jun 27, 2009 6252 days past EOL EOL
3.1 3.1.5 Jun 27, 2009 Apr 9, 2012 5235 days past EOL EOL
2.7 2.7.18 Jul 3, 2010 Jan 1, 2020 2412 days past EOL EOL
3.2 3.2.6 Feb 20, 2011 Feb 20, 2016 3823 days past EOL EOL
3.3 3.3.7 Sep 29, 2012 Sep 29, 2017 3236 days past EOL EOL
3.4 3.4.10 Mar 16, 2014 Mar 18, 2019 2701 days past EOL EOL
3.5 3.5.10 Sep 13, 2015 Sep 30, 2020 2139 days past EOL EOL
3.6 3.6.15 Dec 23, 2016 Dec 23, 2021 1690 days past EOL EOL
3.7 3.7.17 Jun 27, 2018 Jun 27, 2023 1139 days past EOL EOL
3.8 3.8.20 Oct 14, 2019 Oct 7, 2024 671 days past EOL EOL
3.9 3.9.25 Oct 5, 2020 Oct 31, 2025 282 days past EOL EOL
3.10 3.10.20 Oct 4, 2021 Oct 31, 2026 83 days remaining Warning
3.11 3.11.15 Oct 24, 2022 Oct 31, 2027 448 days remaining Active
3.12 3.12.13 Oct 2, 2023 Oct 31, 2028 814 days remaining Active
3.13 3.13.15 Oct 7, 2024 Oct 31, 2029 1179 days remaining Active
3.14 3.14.7 Oct 7, 2025 Oct 31, 2030 1544 days remaining Active
Python EOL status badge Live EOL badge for your README — updates automatically at every build. [![Python EOL](https://img.shields.io/endpoint?url=https%3A%2F%2Fendoflife.ai%2Fbadge%2Fpython.json)](https://endoflife.ai/python)

What does Python end of life mean for your organization?

When a version of Python reaches end of life, the maintainers stop issuing security patches. Vulnerabilities discovered after this date are publicly disclosed on the National Vulnerability Database, exploit code appears on GitHub, and your systems remain permanently exposed.

The CVE blind spot: Most vulnerability scanners check for known CVEs but do not flag the accumulation of unpatched vulnerabilities in EOL software. With a zero-day, nobody knows about the vulnerability. With EOL software, the vulnerability is public — listed, rated, and often weaponized — but no patch will ever exist. This is the most dangerous gap in enterprise security posture.

Organizations running EOL Python should treat it as a vulnerability class in their risk register, apply compensating controls (network segmentation, enhanced monitoring, access restriction), and prioritize migration to a supported version.

Your options when Python reaches end of life

There are four realistic paths. Which one is right depends far more on how long the system needs to keep running than on the version you are on today.

OptionBest whenWatch out for
Move to a supported version The system will outlive the current version's support window and you can schedule the work Budget for compatibility testing, not just the upgrade itself — that is where the real cost sits
Replace the component The project is unmaintained, or a better-supported alternative exists The replacement has its own lifecycle and its own end-of-life date — you are changing vendors, not escaping the problem
Buy extended support Migration is genuinely underway but cannot finish before the deadline, or the workload is frozen by certification or a third-party application A bridge, not a destination — every year purchased is a year the migration still has to happen
Document accepted risk The system is isolated, short-lived, or scheduled for retirement Only defensible with real compensating controls and a written decision — auditors treat undocumented end-of-life software as a finding

How to choose, in one question: how many more years does this system need to run? Under a year, extended support (where it exists) is usually cheaper than an emergency migration. One to three years, migrate — support purchased repeatedly costs more than doing the project once, and the project only gets harder as the version ages. Indefinitely, migrate now and plan the next migration before it surprises you.

Worth saying plainly, because vendors selling extended support rarely will: extended support is often the more expensive choice over a multi-year horizon. It is the right answer when a deadline is genuinely unreachable, not as a default. Compare the annual fee against the one-time cost of migrating before committing to either.

Extended Support Options

If you cannot migrate immediately, extended support vendors provide continued security patches for EOL Python versions. This is a bridge, not a permanent solution — plan your migration in parallel.

endoflife.ai
Get Python Support Options

Python has 12 versions past end of life — security patches have stopped, but CVE disclosures haven't. The good news: extended support for Python exists — vetted vendors ship security patches for years past the official date. Tell us where to reach you and we'll reply with matched options and pricing guidance.

Free · No obligation · Independent — we track the dates, vendors don't pay for placement · Dates verified against vendor sources
Frequently Asked Questions
What is the end-of-life date for Python?
The next Python version reaching EOL is 3.10 on October 31, 2026. See the full table above for all version EOL dates.
When is the Python support end date?
The next Python support end date is October 31, 2026, when version 3.10 reaches end of support. Each version has its own support end date — see the table above for every version's date.
What is the latest supported version of Python?
The latest active version of Python is 3.14.7. Always verify against the table above as support windows can change.
What happens when Python reaches end of life?
When Python reaches end of life, the vendor stops issuing security patches. Any CVEs disclosed after the EOL date accumulate indefinitely with no patch path — creating an ever-growing attack surface that most vulnerability scanners do not flag.
How do I check if I'm running an EOL version of Python?
Check your current version against the table above. If your version's EOL date has passed, you are running unsupported software. You can also use the endoflife.ai Stack Scanner to check your entire dependency file at once.
Is there extended support available for EOL Python versions?
Some vendors offer extended support for EOL software. Contact the original vendor or check with enterprise support providers for options.
Does Python track end-of-life by point release (e.g. Python 3.14.1, Python 3.14.2)?
No — Python end-of-life dates apply to the entire 3.14.x release series, not individual point releases. A point release like Python 3.14.1 or Python 3.14.2 shares the same EOL date as Python 3.14. Security patches stop for the entire 3.14.x line on that date, regardless of which patch version you are running. Check the table above for EOL dates by major version series.
Deep Dive
Full Guide
Python EOL Master Guide — Official Schedule for Every Version

Related Products

✓ Cross-checked against official Python Software Foundation lifecycle documentation (2026-07-17) · Data from endoflife.date API · endoflife.date · Generated at build time · How we source data →
Python end-of-life status badge