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.
python.org/downloads/release/python-3150rc3
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.
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.
Some of the major new features and changes in Python 3.15 are:
frozendict built-in typesentinel built-in typeTypedDict with typed extra itemsTypeFormPyBytesWriter C API to create a Python bytes objectFor more details on the changes to Python 3.15, see What’s new in Python 3.15.
IDLE or tkinter usersWhen 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.
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.”
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.
Regards from a sunny autumnal Helsinki.
Your release team,
Hugo van Kemenade
Ned Deily
Steve Dower