Skip to content

Python 3.15.0 final slips to October 9 after surprise rc3

Python 3.15.0rc3 shipped on October 2 to fix late lazy-import bugs, pushing the final Python 3.15.0 release back one week to October 9, 2026.

By Tech AI Wire Team

3 min read

XLinkedIn
Screenshot of the Python Insider post 'Python 3.15.0 candidate 3 is here!' by Hugo van Kemenade, dated October 2, 2026, explaining the lazy-import release blockers.

By the numbers

new date for the Python 3.15.0 final release
Oct 9
bugfixes, build and doc changes in rc3
156
contributors to rc3 since rc2
82
JIT speedup on x86-64 Linux, per the release notes
7-8%

Python 3.15.0 will now ship on October 9, 2026, one week later than planned. The release team put out an unplanned third release candidate, 3.15.0rc3, on October 2 instead of the final version. A release candidate is a near-final build meant for testing. The cause was a set of late bugs in lazy imports, one of the headline features of the new version.

Why there is an rc3

Release manager Hugo van Kemenade explained the change in a post on the Python discussion forum. "We got some last-minute lazy-import release blockers, and it makes sense to include them in 3.15.0 final," he wrote. "It also makes sense to give a bit of time to test them properly, so this week's planned 3.15.0 final is postponed until next week."

A release blocker is a bug serious enough to stop a release. Lazy imports come from PEP 810, the design document for the feature. They let a program delay loading a module until the code first uses it, which can make programs start faster. A bug in a feature that changes how modules load would be hard to fix after release, so the team chose another test round.

The title of van Kemenade's post calls the extra candidate a tradition. According to the forum thread, Python 3.12, 3.13 and 3.14 each had a surprise rc3 as well.

What is in rc3

The Python Insider blog says rc3 contains about 156 bugfixes, build improvements and documentation changes since rc2. They came from 82 contributors. Van Kemenade runs the release with Ned Deily and Steve Dower.

Python.org describes rc3 as a preview release. It says not to use it in production. The forum announcement adds that no more changes to the ABI are allowed. The ABI is the binary interface that compiled extension modules depend on. Packages built against rc3 should therefore work with the final 3.15.0.

The headline features of Python 3.15

These are the features the release announcement lists for 3.15:

FeatureWhat it does
PEP 810Explicit lazy imports, which defer loading a module
PEP 814A built-in frozendict, a dictionary that cannot be changed
PEP 661A standard way to create sentinel values
PEP 798Unpacking inside comprehensions
PEP 686UTF-8 mode turned on by default
PEP 728Improvements to TypedDict for type hints
PEP 799A new statistical sampling profiler
JIT compilerStill experimental, 7-8% faster on x86-64 Linux

The blog also says frame pointers are now on by default. Those help profilers and debuggers trace a running program. The macOS installers include free-threading support, which lets Python run threads without the global interpreter lock.

Some of these changes were already known. Tech AI Wire covered how Python 3.15 soft-deprecates re.match() in September.

What this means for developers

You have one more week to test before 3.15.0 lands. Install rc3 and run your test suite against it now. If you hit a bug, file it before October 9, while the release team can still act on it.

Test anything that loads modules in unusual ways first. That includes plugin systems, import hooks and code that runs work at import time. These are the patterns most likely to notice a change in how imports load. The late blockers were in exactly that area.

Check text handling too. TechPulse's compatibility checklist names UTF-8 mode and lazy imports as the two biggest upgrade risks. With UTF-8 on by default, code that relied on the system's default text encoding can read or write files differently. Windows machines with a non-UTF-8 setup are the usual place this shows up.

If you maintain a package with compiled extensions, build your wheels against rc3. The ABI is now frozen, so wheels built today should install on the final release. That lets you publish 3.15 support on release day.

Plan your upgrade calendar around the new date. Python 3.10 reached end of life on October 1. Teams moving off it can target 3.14 now, or wait for 3.15.0 on October 9.

Sources

  1. Python 3.15.0 candidate 3 is here! - Python Insider
  2. Python 3.15: following tradition, let's have a surprise rc3! - Discussions on Python.org
  3. Python Release Python 3.15.0rc3 - Python.org
  4. Python 3.15 RC3: Upgrade Compatibility Checklist - TechPulse

Related articles

The daily brief

Three to five stories a day, and what each one means for the people who build software. Free, no spam.