Python 3.15 Released: New Features, Profiler, and End of Python 3.10 Support
Python 3.15 introduces explicit lazy imports, unpacking in comprehensions, and a new sampling profiler in the standard library. Python 3.10 is now officially unsupported, enabling project maintainers to use Python 3.11 features. Performance improvements are limited, with a modest gain in the experimental JIT.
What changed?
Python 3.15 has been officially released. The key changes include support for explicit lazy imports (PEP 810), unpacking in comprehensions (PEP 798), and the introduction of a built-in sampling profiler (profiling.sampling, also called Tachyon). The existing tracing profiler is now named profiling.tracing (previously cProfile). Python 3.10 is no longer supported.

Performance in 3.15 is largely unchanged from 3.14, though the experimental JIT offers a modest speedup for certain workloads.
Why does it matter to an everyday developer?
Explicit lazy imports are now officially supported, making it easier to defer importing heavy dependencies until actually needed, which reduces application startup times without requiring custom workarounds.
Unpacking in comprehensions enables concise and expressive syntax for flattening lists or merging dictionaries and sets, simplifying common patterns.
The new sampling profiler brings low-overhead performance profiling directly to the standard library, allowing developers to analyze live applications, generate flame graphs, and visualize performance bottlenecks without third-party tools.
Python 3.10's end of life clears the way for maintainers to adopt features added in 3.11, such as tomllib, TaskGroup in asyncio, and SQLite enhancements, improving both codebase maintainability and feature sets.
What can the developer do now?
- Upgrade to Python 3.15 using your preferred Python installer or toolchain.
- Update codebases and project dependencies to drop Python 3.10 support and take advantage of features from Python 3.11 onward.
