What changed
The Python release team shipped Python 3.15.0 on October 9, 2026. It adds explicit lazy imports (PEP 810), UTF-8 as the default encoding (PEP 686), frozendict and sentinel built-ins, unpacking in comprehensions, a profiling package with Tachyon sampling, frame pointers enabled by default and a stable ABI for free-threaded builds. Official Windows 64-bit builds use a tail-calling interpreter and macOS installers include free-threading support by default.
Why it matters
Startup-heavy CLIs, short-lived jobs and serverless services can defer module initialization explicitly; projects handling text across platforms should audit assumptions about locale encodings; extension authors gain a more stable compatibility target for free-threaded Python; and production teams get additional profiling options. These are actionable changes, but migration should be tested against dependency support and import side effects.
Startup time becomes an explicit code choice
Developers can mark imports lazy, deferring module loading until first use. This is particularly relevant for tools where most imports are unnecessary for a given invocation. But it can alter timing of initialization, side effects and error surfacing, so tests must cover cold-start and runtime paths rather than assuming speed improvements.
Encoding and extension compatibility need review
UTF-8 becomes the default when no encoding is supplied in applicable text operations. This removes common cross-platform inconsistencies but can expose legacy assumptions about local code pages. Separately, a stable ABI for free-threaded builds improves the future of native extensions without guaranteeing that every package is already compatible.
Benchmarks and profiling require nuance
The experimental JIT remains experimental, and Python's benchmark comparisons are platform- and baseline-specific. Tachyon and enabled frame pointers broaden diagnostic options; production overhead and usefulness should be measured for each workload. Windows and macOS binary defaults differ from prior releases.