Notice: This page displays a fallback because interactive scripts did not run. Possible causes include disabled JavaScript or failure to load scripts or stylesheets.

Python 3.15.0rc3

Release date: Oct. 2, 2026

Following recent tradition, here's a surprise third release candidate for Python 3.15.0!

We got some last-minute lazy-import release blockers, and it makes sense to include them in 3.15.0 final. 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, and here's an extra 3.15.0rc3.

This is a candidate preview of Python 3.15

This release, 3.15.0rc3, is the final planned release candidate, containing around 156 bugfixes, build improvements and documentation changes from 82 contributors since 3.15.0rc2. Entering the release candidate phase, only reviewed code changes which are clear bug fixes are allowed between this release candidate and the final release.

The next release of Python 3.15 will be 3.15.0 final, scheduled for 2026-10-09.

There will be no ABI changes from this point forward in the 3.15 series, and the goal is that there will be as few code changes as possible.

Call to action

We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.15 during this phase, and publish Python 3.15 wheels on PyPI to be ready for the final release of 3.15.0, and to help other projects do their own testing. Any binary wheels built against Python 3.15.0 release candidates will work with future versions of Python 3.15. As always, report any issues to the Python bug tracker.

Please keep in mind that this is a preview release and while it's as close to the final release as we can get it, its use is not recommended for production environments.

Core team: extra time to work on documentation

  • Are all your changes properly documented?
  • Are they mentioned in What's New?
  • Did you notice other changes with insufficient documentation?

Major new features of the 3.15 series, compared to 3.14

Some of the major new features and changes in Python 3.15 are:

Interpreter improvements

  • PEP 810: Explicit lazy imports for faster startup times
  • PEP 814: Add frozendict built-in type
  • PEP 661: Add sentinel built-in type
  • PEP 798: Unpacking in comprehensions
  • PEP 686: Python now uses UTF-8 as the default encoding
  • PEP 829: Package startup configuration files
  • The experimental JIT compiler has been significantly upgraded, with 7-8% geometric mean performance improvement on x86-64 Linux over the standard interpreter, and 11-12% speedup on AArch64 macOS over the tail-calling interpreter
  • Improved error messages

Significant improvements in the standard library

  • PEP 799: Tachyon: High frequency statistical sampling profiler
  • PEP 799: A dedicated profiling package for organizing Python profiling tools
  • More color

New typing features

  • PEP 728: TypedDict with typed extra items
  • PEP 747: Annotating type forms with TypeForm
  • PEP 800: Disjoint bases in the type system

C API improvements

  • PEP 803, 820, 793: Stable ABI for free-threaded builds and related C API
  • PEP 782: A new PyBytesWriter C API to create a Python bytes object
  • PEP 788: Protection against finalization in the C API

Build changes

  • PEP 831: Frame pointers are enabled by default for improved system-level observability

Release changes

  • The official Windows 64-bit binaries now use the tail-calling interpreter
  • The official macOS binaries now install free-threading support by default
  • (Hey, fellow core team member, if a feature you find important is missing from this list, let Hugo know.)

For more details on the changes to Python 3.15, see What’s new in Python 3.15.

Attention macOS 27.0 IDLE or tkinter users

When running IDLE or other GUI applications that use the tkinter module, these applications may hang when using an application's menu command that opens a dialog (for example, IDLE's About IDLE, Settings, and Open Module commands) resulting in a spinning beach ball with Force Quit needed.

This problem is due to an operating system behavior change in macOS 27.0 that is believed to affect all current versions of the Tk graphics toolkit and thus the tkinter module in all current Python versions.

If you depend on Tk-based applications (like IDLE) on macOS, you may want to consider deferring installing macOS 27.0 until a Tk or macOS workaround is available or testing that your application workflow is not affected. Follow issue #158053 for updates.

More resources

And now for something completely different

At this moment the bow was in the hands of Eurymachus, who was warming it by the fire, but even so he could not string it, and he was greatly grieved. He heaved a deep sigh and said, “I grieve for myself and for us all; I grieve that I shall have to forgo the marriage, but I do not care nearly so much about this, for there are plenty of other women in Ithaca and elsewhere; what I feel most is the fact of our being so inferior to Ulysses in strength that we cannot string his bow. This will disgrace us in the eyes of those who are yet unborn.”

Enjoy the new release

Thanks to all of the many volunteers who help make Python development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organisation contributions to the Python Software Foundation.

Full Changelog

Files

Version Operating system Description File size Sigstore SBOM SHA-256 checksum
Gzipped source tarball Source release 41.7 MB .sigstore SPDX 98a6264c7a48e4ce0f9a9ea4bdd211ea9fcff32b55c79c5efc1ae6d91b032210
XZ compressed source tarball Source release 33.9 MB .sigstore SPDX 506630aa66d5441188f34df22c0760bfe87fc92212630493ebc9ff3b3a7a1d49
Android embeddable package (aarch64) Android 23.1 MB .sigstore fbeb492aa40729521a79633887de3f1bc7cbe5eb9ab24a61037096d7da8753b5
Android embeddable package (x86_64) Android 23.4 MB .sigstore da81a1328620c9816526cef169fa6c081ab49e84a08a1763e85f03ca742d9724
iOS XCframework iOS 80.6 MB .sigstore f0b74c0967425ced481233de103483461ec5aae7fd7eabb8aff7ea68980da34b
macOS installer macOS for macOS 10.15 and later 85.0 MB .sigstore fd45e35e2c1dc25b77ff71b3c796ee554ef04c27488e98af93c3d9cc8dc544d9
Windows installer (64-bit) Windows Recommended 43.2 MB .sigstore SPDX b4e9f53f4c930e04db445de94675d8306674b4734dd1a81777418cff6136c4de
Windows installer (32-bit) Windows 41.5 MB .sigstore SPDX 22582f8f7276d140890e9a9fda19fb782d19639d0774909ac6149d8bab94ac6f
Windows installer (ARM64) Windows Experimental 42.5 MB .sigstore SPDX 4f1fce8b02b7207c669e69ff15e210a9e9dfddeafc1fc37ef6e1e6ad5b10f630
Windows embeddable package (64-bit) Windows 13.1 MB .sigstore SPDX 66ae872be9ea43d94944cb0d121eb3754aa43c47e5b7276ee50388bf113033a4
Windows embeddable package (32-bit) Windows 11.4 MB .sigstore SPDX ebe9236c08086c1a5c354aa2a2c9cc7c05efca7edbce26d7ee22f5a289b5a74e
Windows embeddable package (ARM64) Windows 12.4 MB .sigstore SPDX 8217e3d37ec7cded17108600857608420335d2582a28c1437cd99076bf5e6d01
Windows release manifest Windows Install with 'py install 3.15' 15.2 KB .sigstore ac85885fc242caf8a6be25a06eff2a73f8fd46891ede8509b74c29e0f69d81b4