
Python 3.15.0rc2 is the final planned release candidate before Python 3.15.0, with the stable release scheduled for October 1, 2026.
Python 3.15 is now at the last checkpoint before its stable release. The Python Software Foundation has released Python 3.15.0rc2, the final planned release candidate, giving developers and project maintainers a chance to test their code before the new version arrives.
The release, published on September 1, contains around 144 bug fixes, build improvements and documentation changes from 76 contributors since the first release candidate. From this point, Python says only reviewed changes that are clear bug fixes are allowed, with no further ABI changes planned for the 3.15 series.
“It’s the final 3.15 release candidate!”
The release candidate is not the stable version yet, but it is intended to be very close to the final release. Python 3.15.0 is scheduled to arrive on October 1, 2026, and the project says the goal from this stage is to keep code changes to a minimum.
Python is also asking maintainers of third-party projects to test their software with 3.15 and publish compatible wheels on PyPI. This testing can help identify compatibility issues before the final release reaches wider use.
For developers preparing their own projects for the update, a strong foundation in Python programming and problem-solving can make it easier to test code and understand changes between Python versions.
“The next release of Python 3.15 will be 3.15.0 final, scheduled for 2026-10-01.”
One of the headline changes in Python 3.15 is explicit lazy imports through PEP 810. The feature is aimed at applications where startup time is affected by large or deep dependency trees.
With lazy imports, developers can tell Python to delay loading a module until the imported name is actually used. This can avoid loading code that an application does not need immediately, while allowing import statements to remain at module scope.
“Explicit lazy imports for faster startup times”
For developers building applications with multiple modules and dependencies, changes like this make a working understanding of Python application development useful when evaluating how a new language version could affect application startup and performance.
Python 3.15 also adds new built-in types and language features. PEP 814 introduces frozendict, an immutable mapping type, while PEP 661 adds a new sentinel type for creating unique sentinel values.
The release also includes unpacking in comprehensions, UTF-8 as the default encoding under PEP 686, and TypeForm for annotating type forms. Together, these changes affect areas ranging from everyday Python code to typing and data handling.
“Python now uses UTF-8 as the default encoding”
As Python continues to evolve, keeping up with these language-level changes becomes important for anyone working with Python programming and problem-solving.
Performance is another important part of the Python 3.15 update. Python says its JIT compiler has been significantly upgraded. The project reports an 8–9% geometric mean performance improvement on x86-64 Linux over the standard interpreter and a 12–13% speedup on AArch64 macOS over the tail-calling interpreter.
The release also changes the default interpreter used by official Windows 64-bit binaries and enables free-threading support by default in official macOS binaries.
“The JIT compiler has been significantly upgraded”
These runtime changes are particularly relevant when developers are working on applications where execution behaviour and performance matter. For those building modern applications with Python, AI-focused software development can also involve understanding how Python works within larger application stacks.
Python 3.15 introduces a dedicated profiling package for organising Python profiling tools, including Tachyon, a high-frequency statistical sampling profiler. The release also enables frame pointers by default to improve system-level observability.
These additions give developers more ways to examine how Python applications behave at runtime, particularly when investigating performance or other system-level issues.
These additions give developers more ways to examine how Python applications behave at runtime, particularly when investigating performance or other system-level issues. As Python continues to be used across different types of applications, these tools can also be useful for developers working with Python in AI and data-driven applications.
The release candidate gives developers a practical window to check whether existing applications, dependencies and development workflows work as expected with Python 3.15. Python specifically encourages third-party project maintainers to prepare their projects and publish 3.15 wheels on PyPI to support compatibility testing.
At the same time, Python makes clear that rc2 remains a preview release and is not recommended for production environments. For now, the focus is on testing, finding issues and preparing projects for the stable release.
“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.”
With the final planned release candidate now available, Python 3.15 has moved into the last stage before its October 1 stable release. The update brings changes to imports, built-in types, encoding, typing, profiling, runtime performance and free-threading support.
For developers, the release candidate is also an opportunity to test existing projects before the new version becomes stable. As Python continues to evolve across application development, data work and AI, keeping up with these changes will remain an important part of working with the language.