Python 3.15 Launches with Built-In Sampling Profiler
Python 3.15 has officially launched, bringing native lazy imports and standard sampling profiling while ending support for Python 3.10.

The Python core team has officially released Python 3.15, curated by release manager Hugo van Kemenade. The new release introduces PEP 810 explicit lazy imports, which defer module loading until symbols are actively used. This feature addresses critical startup overhead in command-line applications, such as tools loading heavy machine learning libraries like sentence_transformers. Additionally, Python 3.15 implements PEP 798 comprehension unpacking syntax, extending PEP 448 list unpacking into set, dictionary, and list comprehensions.
In addition to language syntax updates, the standard library now includes Tachyon, a built-in sampling profiler accessible via profiling.sampling that captures process stack traces without requiring advance instrumentation. Rebranding the existing cProfile tracer to profiling.tracing, the new sampling profiler generates flame graphs, heat maps, and Firefox profiler-compatible outputs with minimal execution overhead. Benchmark testing by Miguel Grinberg on the 3.15.0rc3 release indicated that performance remains mostly consistent with Python 3.14, though Python 3.15's experimental JIT achieved a 1.2x speedup on a Fibonacci benchmark.
For developers, the launch of Python 3.15 marks the official end-of-life for Python 3.10, which originally debuted in 2021. Open-source maintainers tracking active release lifecycles can now drop 3.10 compatibility and freely integrate standard library tools introduced in Python 3.11. These newly accessible baseline features include standard tomllib parsing, datetime.UTC aliases, asyncio TaskGroup and timeout constructs, as well as SQLite enhancements such as setlimit(), create_window_function(), and blobopen() for large binary stream handling.
This is our own summary of reporting by Simon Willison



