ShopperCove
Menu
All writingBlogTopicsCategoriesAboutRSS
Blog
Categories
Observability & SRE62All categories
Topics
sre111localhost lab102performance70python58javascript47bundle size36benchmarking35node.js35web development21typescript19benchmark16content creation15All topics
About
Loading article…

ShopperCove

Hands-on notes on developer tools, written after the tool has actually been run.

All writingBlogCategoriesTopicsAboutPrivacyRSS

© 2026 ShopperCove

On this page

  1. Which Python versions are still supported right now?
  2. Why did Python 3.15.2 come out only 16 days after 3.15.0?
  3. What changed in Python 3.15 that might make you upgrade?
  4. How do you check which Python version you have?
  5. Is a distro Python like 3.13.5 really out of date?
  6. Should you install the newest Python version today?
  7. When is the next Python version coming?
  8. FAQ
  9. Related
  10. Sources
  1. Blog

Latest Python Version: Is Yours Already Old?

Python 3.15 landed in October 2026 and was patched twice within 16 days. Here is the current version, every supported branch with its end date, and a quick way to tell whether the Python on your machine is behind.

6 November 2026·7 min read

Summary

Disclosure

This post contains affiliate links. If you buy through them, I may earn a commission at no extra cost to you. I only make firsthand claims about products I have actually used.

On this page
  1. Which Python versions are still supported right now?
  2. Why did Python 3.15.2 come out only 16 days after 3.15.0?
  3. What changed in Python 3.15 that might make you upgrade?
  4. How do you check which Python version you have?
  5. Is a distro Python like 3.13.5 really out of date?
  6. Should you install the newest Python version today?
  7. When is the next Python version coming?
  8. FAQ
  9. Related
  10. Sources

What is the latest Python version? As of 3 November 2026 it is Python 3.15.2, released on 25 October 2026 as an expedited security release. Python 3.15.0 itself shipped on 9 October 2026. If you can't move to 3.15 yet, 3.14.10, 3.13.18, 3.12.16 and 3.11.18 all got updates the same day.

Here is the catch we hit: the machine we wrote this on runs Debian 13, and its system Python reported 3.13.5. python.org's newest 3.13 release is 3.13.18, so going by version numbers alone our box looked 13 patch releases behind. It isn't quite that simple, though. Below are the supported versions, what changed in 3.15, and how to check what you actually have.

Which Python versions are still supported right now?

This is python.org's release status table as of 3 November 2026:

VersionStatusFirst releasedEnd of supportLatest release
3.16pre-releaseplanned 6 Oct 2027Oct 2032not out yet (PEP 826)
3.15bugfix9 Oct 2026Oct 20313.15.2 (25 Oct 2026)
3.14bugfix7 Oct 2025Oct 20303.14.10 (25 Oct 2026)
3.13security7 Oct 2024Oct 20293.13.18 (25 Oct 2026)
3.12securityOct 2023Oct 20283.12.16 (25 Oct 2026)
3.11securityOct 2022Oct 20273.11.18 (25 Oct 2026)
3.10end of lifeOct 20211 Oct 20263.10.22 was the last (1 Oct 2026)

"Bugfix" means the branch still gets regular bug fixes. "Security" means it only gets security fixes. "End of life" means nothing more is coming. Each branch gets about five years of support in total. For the 3.10 and 3.13 dates in more detail, see when Python 3.10 reaches end of life and when Python 3.13 reaches end of life.

Why did Python 3.15.2 come out only 16 days after 3.15.0?

python.org calls 3.15.2 an "expedited security release", and its release page gives the reason. Intermediate CA keys belonging to eMudhra had been compromised, so the ssl module now blocks those keys as a last resort. The page also says normal uses of pip, including upgrading pip itself, are now safe from attacks based on those keys, even if pip hasn't been updated yet. The security fixes it lists are:

  • CVE-2026-115557 (gh-160040): distrust the compromised eMudhra intermediate CA keys.
  • CVE-2026-114583 (gh-160097): reject links that replace the destination in tarfile.tar_filter.
  • gh-160300: reject cookies with a negative version in http.cookiejar.

The release also contains around 130 bug fixes, build improvements and documentation changes from 70 contributors since 3.15.1, which came out on 21 October. So if you installed 3.15.0 on launch day, you are already two releases behind.

What changed in Python 3.15 that might make you upgrade?

These are the headline items in the official What's New in Python 3.15 page:

  • Lazy imports (PEP 810). A new lazy import json form delays loading a module until it is first used. That can cut startup time for CLIs that import a lot but use little.
  • frozendict (PEP 814). An immutable, hashable dictionary type is now built in.
  • Sentinel objects (PEP 661). There is now a standard way to create unique "missing value" markers.
  • UTF-8 by default (PEP 686). Text files now use UTF-8 unless you ask for something else. Setting PYTHONUTF8=0 brings back the old locale-based behaviour.
  • Unpacking in comprehensions (PEP 798). You can write [*L for L in lists] to flatten a list of lists.
  • A profiling package (PEP 799). It includes the Tachyon sampling profiler.
  • A faster JIT. The docs report a 7–8% geometric-mean gain on x86-64 Linux and 11–12% on AArch64 macOS on the pyperformance suite.
  • Frame pointers on by default (PEP 831). This makes system profilers and debuggers more useful.
  • abi3t. A stable ABI for free-threaded builds, so extension authors can ship one wheel for that build.
  • re.prefixmatch(), a clearer name for what re.match() actually does.

There are packaging changes too. Windows 64-bit binaries now use the tail-calling interpreter, and the macOS installer includes free-threading support by default. If you're following the no-GIL story, our page on whether Python 3.14 is free-threaded by default explains the background. One more detail for people who track the garbage collector: the incremental GC that appeared in the 3.14 line was reverted in 3.14.5 and later, and in 3.15.

How do you check which Python version you have?

Run one of these in a terminal:

python3 --version
python3 -c "import sys; print(sys.version_info)"

On our Debian 13 box, the output was:

Python 3.13.5
sys.version_info(major=3, minor=13, micro=5, releaselevel='final', serial=0)

Inside a script, sys.version_info is the reliable value to compare against, for example sys.version_info >= (3, 12). On Windows, python.org now offers the Python install manager as the main download, and py --version reports the default interpreter.

Is a distro Python like 3.13.5 really out of date?

Not necessarily. This is the part most "latest version" answers skip. Debian listed our package as 3.13.5-2+deb13u5, and the +deb13u5 suffix means Debian has shipped five stable updates to that package. Stable distributions usually backport security fixes into the version they froze, rather than moving to each new upstream patch release. So the version string can say 3.13.5 while some later fixes are already included. What you don't get are the upstream bug fixes Debian chose not to backport, or any 3.14 and 3.15 features.

The practical rule:

  • Leave the system Python to the OS. It exists to run OS tools.
  • Install the project Python separately: from python.org, from your platform's installer, or with a version manager. Pin it per project.

Should you install the newest Python version today?

It depends on what you're doing:

  • New projects: start on 3.15.2. It has the longest runway, with support until October 2031, and you avoid an upgrade within a year.
  • Existing apps on 3.14: 3.14 is still in bugfix mode until 2030, so there's no rush. Test 3.15 in CI first. The UTF-8 default and lazy imports are the changes most likely to surprise you.
  • Apps on 3.11–3.13: these are security-only now, so you only get security fixes. Plan a move, and start with 3.11, which loses support in October 2027.
  • Anything on 3.10 or older: 3.10 stopped getting fixes on 1 October 2026, and 3.9's last release was 3.9.25 on 31 October 2025. Upgrading is overdue.

Before you jump, check that your key dependencies publish wheels for the new version. A compiled package without a 3.15 wheel is the usual blocker, not the language itself.

When is the next Python version coming?

Python 3.16 is planned for 6 October 2027, with support through October 2032, according to its release schedule in PEP 826. Feature releases now come every October, so you can plan upgrades for the same month each year. If you want to try a newer interpreter with small, safe experiments first, our labs on re vs str methods and itertools vs plain loops are easy to rerun on any version.

FAQ

What is the latest stable Python version? Python 3.15.2, released 25 October 2026.

Is Python 3.14 still supported? Yes. It gets bugfix releases, with support until October 2030. Its latest release is 3.14.10.

Is Python 3.10 end of life? Yes, as of 1 October 2026. 3.10.22 was its final release.

What is the latest Python 3.13 release? 3.13.18, from 25 October 2026. 3.13 now gets security fixes only.

When does Python 3.16 come out? It is planned for 6 October 2027.

Is Python 3.15 safe for production? It is a stable release with two patch releases already out. Upgrade once your dependencies support it, and go straight to the newest patch.

Related

  • 01shoppercove.comWhen does Python 3.13 reach end of life?
  • 02shoppercove.comIs Python 3.14 free-threaded by default?
  • 03shoppercove.comWhen does Python 3.10 reach end of life?

Sources

  • 01python.org/downloads/
  • 02python.org/downloads/release/python-3152/
  • 03docs.python.org/3.15/whatsnew/3.15.html
  • 04peps.python.org/pep-0790/
  • 05peps.python.org/pep-0826/

Lab evidence

What I found running this

Checked on 3 Nov 2026 against python.org/downloads, the Python 3.15.2 release page and the What's New in Python 3.15 docs, all listed in Sources. On our own Debian 13 (trixie) box, python3 --version printed Python 3.13.5 and dpkg listed the package as 3.13.5-2+deb13u5. We did not benchmark 3.15 ourselves; the JIT speed figures are the ones the Python docs publish.

Explore the product

Freelancers and devs who want to turn coding skills into paid site builds

Turn your Python skills into paid client work

See Ready Client Sites

Notes when a lab post goes up

Occasional email for new hands-on reviews. No sequence and no sponsors.

Explore the product

Freelancers and devs who want to turn coding skills into paid site builds

Turn your Python skills into paid client work

See Ready Client Sites

Keep reading

  • Is typescript-eslint Strict Worth 4x Errors?

    We ran three typescript-eslint presets on a real open-source TypeScript library and counted every finding and second. The jump to strict was smaller than the jump to type-aware linting, and the findings themselves tell you whether your team is ready.

    Summary4 Nov 20267 min read

  • Python partition vs split: Which One Should You Use?

    Both cut a string at a separator, but they fail in different ways. We ran them on Python 3.13.5 to show where partition() is safer and where split() is the right tool.

    Summary2 Nov 20263 min read

  • toSorted vs sort JavaScript: Which One Copies Your Array?

    What changes when you swap sort() for toSorted(), with a real 1-million-item Node.js benchmark and the support table.

    Summary1 Nov 20263 min read