Python 3.15 Is Out: Lazy Imports, UTF-8 by Default and More
Python 3.15.0 was released on October 9, 2026, after a surprise extra release candidate a week earlier. The big changes are lazy imports for faster startup, UTF-8 as the default text encoding, two new built-in types and a faster experimental JIT compiler. Most code will run as before, but anything that reads or writes files without naming an encoding deserves a quick check.
Key takeaways
- Python 3.15.0 came out on October 9, 2026, built from 5,643 commits by 1,012 contributors.
- New
lazy importsyntax delays loading a module until you first use it. - UTF-8 is now the default encoding when your code does not specify one.
- Python 3.10 reaches end of life this month, so plan to move off it.
What Happened
The Python release team announced Python 3.15.0 on the official Python Insider blog on October 9, 2026, calling it the newest major release of the language. It was originally scheduled for October 1, but the team shipped a third release candidate on October 2 to fix two last-minute bugs in the new lazy import feature.
Here are the four changes I think most developers will notice:
Lazy imports (PEP 810). Writing lazy import json tells Python to load the module only when your code first touches it. Scripts that import many libraries should start faster. It only works at the top level of a module, not inside functions or try blocks.
UTF-8 by default (PEP 686). A plain open("file.txt") now reads and writes UTF-8, no matter what the computer's regional settings are. That helps with ñ and accented names, but can change older scripts that relied on the system's encoding.
New built-ins. frozendict (PEP 814) is a read-only dictionary that can be used as a key or cached safely, and sentinel (PEP 661) gives a clean way to create unique marker values.
Faster experimental JIT. The release notes report a 7 to 8% average speedup on x86-64 Linux over the standard interpreter, and 11 to 12% on Apple Silicon Macs over the tail-calling interpreter.
Why It Matters
Python runs a lot of local work: Django web apps, spreadsheet scripts, school classes and automation bots. Python 3.15 is supported for a long time, with about two years of bugfix releases and security fixes until roughly October 2031, according to PEP 790. At the same time, Real Python reports that Python 3.10 reaches end of life this October, which means no more security fixes for it.
| Change | Who should care | What to check |
|---|---|---|
| UTF-8 by default | Anyone reading or writing files, CSVs or logs | Add encoding="utf-8" to open() calls |
| Lazy imports | CLI tools, bots, serverless functions | Try it on heavy imports, measure startup |
| frozendict | Library authors | Code that checks isinstance(x, dict) |
| macOS 27.0 issue | Teachers using IDLE on Macs | Delay the macOS 27.0 upgrade for now |
For Philippine businesses
If a freelancer built your inventory script, payroll report or website backend in Python a few years ago, it may still be running on Python 3.10 or older. The UTF-8 change also matters here: customer names with ñ or accented letters in CSV exports are exactly where encoding bugs show up. For schools and computer laboratories, 3.15 is a fine version to teach with, as long as Mac labs avoid the macOS 27.0 IDLE issue.
What to Do Now
- Find out what you run. Run
python --versionon your servers and laptops, and list any app still on Python 3.10 or older. - Test in a separate environment. Install 3.15 next to your current version and create a fresh virtual environment with
python -m venv. Do not replace production Python yet. - Make encodings explicit. Search your code for
open(calls without an encoding and addencoding="utf-8", orencoding="locale"if you truly need the old behaviour. - Check your libraries. Make sure your key packages install cleanly on 3.15 before you switch.
- Upgrade old apps first. Move anything on 3.10 to a supported version, then plan 3.15 for new projects.
My take
Lazy imports are the feature I will use most, because my automation scripts import a lot of libraries just to run one small task. UTF-8 by default is the change that will quietly fix, or quietly break, the most local projects, so I would add explicit encodings everywhere this month. I will start new projects on 3.15 and wait a few weeks before moving client production apps.
Frequently Asked Questions
When was Python 3.15 released?
Python 3.15.0 was released on October 9, 2026. It was planned for October 1, but the release team shipped a surprise third release candidate on October 2 to fix last-minute lazy-import bugs.
What are lazy imports?
A lazy import uses the new lazy keyword, for example lazy import json. Python only loads the module the first time you actually use it, which can make scripts and command-line tools start faster. Lazy imports are only allowed at the top level of a module.
Will UTF-8 by default break my code?
It can affect code that opens files without an encoding argument and relied on the computer's own locale encoding. The fix is to pass the encoding explicitly, such as encoding="utf-8". As a temporary opt-out, the docs list the PYTHONUTF8=0 environment variable or the -X utf8=0 option.
Should our school switch to Python 3.15 now?
It is fine for learning on Windows and Linux. If students use IDLE on Macs, note the release team's warning that IDLE and other tkinter apps may hang on macOS 27.0, so hold off on that macOS upgrade or keep the lab on its current setup until a fix lands.
Can you help me upgrade my Python projects to 3.15?
Yes. I can test your scripts, web apps and automations on Python 3.15, fix encoding and dependency issues, and plan a safe switch from older versions like Python 3.10. Contact me here.
Sources
- Python 3.15.0 (final) is here! · Python Insider (Python Software Foundation), October 9, 2026
- What's new in Python 3.15 · Python documentation, checked October 17, 2026
- PEP 790: Python 3.15 Release Schedule · Python Enhancement Proposals, checked October 17, 2026
- Python 3.15 Gets a Surprise RC3 and Other Python News for October 2026 · Real Python, October 5, 2026
Need Help With Your Python Projects?
I build and maintain Python scripts, automations and web apps for Philippine businesses, schools and cooperatives, and I can test and upgrade yours to Python 3.15 safely.
Information current as of October 17, 2026.

Comments
Post a Comment