Python 3.10 reached end of life on 1 October 2026, according to the Python developer guide, so it no longer receives security fixes from the core team. Move services to a supported version. Python 3.13 and 3.14 are safe middle choices, and 3.11 is supported only until October 2027.
What end of life does and does not mean
Your code will keep running. Nothing is turned off. What stops is the upstream project accepting fixes for security issues in that version. If a vulnerability in the interpreter or the standard library is found next month, 3.10 will not get a patch from the core team.
Some operating system vendors continue to patch Python versions that ship in their distributions, under their own terms. If you rely on that, confirm it for your distribution and release, and write the date down.
Where to move
| Target | Status | End of life | Notes |
|---|---|---|---|
| 3.11 | security | 2027-10 | Small step, short runway |
| 3.12 | security | 2028-10 | Good fit if libraries lag |
| 3.13 | security | 2029-10 | Longer runway |
| 3.14 | bugfix | 2030-10 | Newest with bugfix releases for a while |
| 3.15 | bugfix | 2031-10 | Released 2026-10-09, check library wheels first |
Choose the newest version that all of your key dependencies list as supported.
Five steps
- Inventory. Find every place 3.10 appears: base images, CI files,
.python-versionfiles, serverless runtimes and cron hosts. - Check your dependencies. Look for wheels or releases that support your target. Pure Python packages are usually fine. Packages with native code are the ones to check.
- Upgrade in a branch. Change the interpreter, refresh the lock file if you use one, and run the tests.
- Read warnings. Run with warnings enabled. Deprecations raised on 3.10 or 3.11 can become removals later.
- Ship in stages. Move low risk services first.
If you cannot move yet
Treat it as an accepted risk with an owner and a date. Reduce exposure meanwhile: limit network reach, keep dependencies patched, and do not run the interpreter against untrusted input where you can avoid it. See End of life software: upgrade, extend, isolate or retire for the choices.
Try it yourself
The reachability demo shows how findings that cannot be reached by your code are separated from ones that can. When you are triaging an old runtime, this helps decide what to fix first.
Click through it at your own pace, or open it full screen.
Safeguard provides reachability analysis and dependency scanning for Python projects. The free scan is at gold.safeguard.sh/scan.
Quick check
Is Python 3.10 still safe to run?
It runs, but upstream no longer fixes new security issues in it. Plan to move, and add controls while you do.
Should I jump to Python 3.15?
Only after your dependencies support it. It was first released on 2026-10-09, so check wheels and test.
Sources
Last reviewed: 19 October 2026.