Python 3.15.0 Candidate 3 Released to Resolve Lazy-Import Blockers

A minimalist glass hourglass filled with glowing blue particles on a dark reflective surface.

Python core developers have issued an unexpected third release candidate, Python 3.15.0rc3, after discovering last-minute release blockers related to the new explicit lazy-import system. The inclusion of these critical fixes has pushed back the scheduled final release of Python 3.15.0 from early October to October 9, 2026.

Stabilizing the Release Candidate Phase

The 3.15.0rc3 update incorporates roughly 156 bug fixes, build enhancements, and documentation changes contributed by 82 developers since the release of candidate 2. Because the release candidate stage enforces strict stability guidelines, only peer-reviewed bug fixes are permitted into the codebase. The Python core team confirmed that binary interfaces (ABI) are now frozen for the 3.15 series to ensure stability.

Maintainers of third-party Python packages are urged to test their implementations against 3.15.0rc3 and publish compatible binary wheels on PyPI. Binary wheels created against this release candidate will retain full compatibility with future maintenance releases in the Python 3.15 sequence. The core team warns that preview releases are intended solely for testing and should not be deployed in production environments.

Major Language and Runtime Improvements

Python 3.15 introduces several key enhancements over Python 3.14. Notable language additions include explicit lazy imports (PEP 810) for faster startup execution, a built-in frozendict type (PEP 814), a sentinel built-in type (PEP 661), and extended unpacking syntax in comprehensions (PEP 798). UTF-8 has also been set as the standard default encoding (PEP 686).

Performance improvements extend to the experimental JIT compiler, which delivers a 7% to 8% speed boost on x86-64 Linux environments and an 11% to 12% speedup on AArch64 macOS compared to standard execution. Official Windows 64-bit binaries now run the tail-calling interpreter by default, while macOS binaries bundle free-threading support out of the box. System-level observability is also improved by enabling frame pointers by default (PEP 831).

Known Platform Limitations

The release notes highlight an ongoing issue on macOS 27.0 affecting applications built with the standard Tk graphics toolkit and the tkinter module, such as the built-in IDLE environment. Due to OS-level changes in macOS 27.0, triggered menu commands that open dialog windows may cause GUI applications to hang indefinitely.

This issue impacts all current Python releases using Tk. Developers who rely heavily on Tkinter applications on macOS are advised to hold off on updating to macOS 27.0 until an operating system update or toolkit workaround is made available.

AI-generated editorial illustration; not a documentary photograph.

Source: Python 3.15.0 candidate 3 is here!

Share this article
FacebookThreadsLinkedInX

Leave a Reply

Your email address will not be published. Required fields are marked *