Python 3.15 brings lazy imports, frozendict, UTF-8 by default and a faster JIT. At the same time, Python 3.10 stopped receiving security patches: it is time to review your scripts and data pipelines.
Python 3.15 arrives with lazy imports, a faster JIT and UTF-8 as the default encoding. This version of one of the most widely used languages in data analytics, automation and artificial intelligence was released on October 9, 2026, brings together 5,643 changes from 1,012 contributors and has already received its first bugfix release, 3.15.1. A few days earlier, on October 1, Python 3.10 reached its end of life: it is no longer supported and gets no more security patches.
What's new in Python 3.15
- Explicit lazy imports (PEP 810): modules are loaded only when they are used, which speeds up the startup of scripts and applications.
- A new
frozendicttype, an immutable dictionary (PEP 814), andsentinelfor special values (PEP 661). - Unpacking inside list comprehensions (PEP 798) and new typing improvements.
- Tachyon, a sampling profiler for finding bottlenecks (PEP 799).
- A JIT compiler that is 7 to 8% faster on x86-64 Linux and 11 to 12% faster on macOS with ARM processors. On 64-bit Windows, a more efficient interpreter is used.
- The macOS installers include by default the build without the global lock (free-threading), which makes better use of multi-core processors.
UTF-8 by default: watch out if you process files on Windows
With PEP 686, Python 3.15 uses UTF-8 as the default encoding. The change mainly affects Windows, where the regional encoding was used before. A CSV exported from Excel or from an accounting system with ANSI encoding may display accented letters and the ñ incorrectly if the script does not specify the encoding. The solution is to always declare it, for example encoding="cp1252" or encoding="utf-8", when opening each file.
Python 3.10 no longer receives security patches
On October 1, security fixes were released for several branches: 3.10.22 (the last one for that branch), 3.11.17, 3.12.15, 3.13.16 and 3.14.8. From now on, any new flaw in Python 3.10 will remain unfixed. Python 3.11 will be supported until October 2027 and Python 3.15 until October 2031.
What to do in your company
- Take inventory of the scripts, data loading processes (ETL), dashboards and servers that still use Python 3.10 or earlier, and plan their migration.
- Apply the October 1 security updates on branches 3.11 through 3.14.
- Test in a separate environment before moving to Python 3.15 and verify that your libraries are already compatible.
- Declare the encoding when reading and writing files, especially CSV files exported from other systems.
- If you use macOS 27.0, keep in mind that IDLE and tkinter applications may freeze on this version.
How we help you
We migrate and maintain Python data processes as part of our data analytics and artificial intelligence services, and we update applications with our custom software development team.
Sources
Source: Python.org