2025 was a pivotal year for Python. The language took its biggest step yet toward real CPU parallelism—free-threaded builds became officially supported. A new generation of Rust-powered tooling reshaped how developers manage packages. The Python Software Foundation navigated significant financial pressures. And for the first time, a feature-length Python documentary premiered on YouTube.
Here's a look at the defining themes—and what they mean for 2026.
TL;DR:
Free-threading goes official: Python 3.14 makes GIL-optional builds "supported" (Phase II); ecosystem adoption begins
uv momentum: Astral's Rust-powered package manager gaining major CI share (Wagtail: 66% uv vs 34% pip)
PSF under pressure: Grant withdrawal, PyCon losses, and paused grants program highlight funding challenges
Ecosystem milestones: Django turns 20, PyCharm unifies editions, Python 3.9 reaches EOL
2026 to watch: PEP 810 lazy imports, free-threading ecosystem maturation, PSF sustainability
The Year's Biggest Story: Python Breaks Free from the GIL
For over three decades, the Global Interpreter Lock (GIL) has been Python's most debated limitation. In 2025, Python took a major step toward freedom.
Python 3.14: Free-Threading Goes Official
Released on October 7, 2025, Python 3.14 marked a watershed moment. With the acceptance of PEP 779, free-threaded Python moved from "experimental" to "officially supported." This isn't just a semantic change—it signals to the entire ecosystem that GIL-free Python is ready for serious adoption.
The numbers tell the story:
PSF reported the single-thread performance gap was ~40% in 3.13; in 3.14, overhead is ~5–10% (platform/compiler dependent)
In Miguel Grinberg's CPU-heavy multi-thread benchmark, 3.14 free-threaded was ~3.1× faster than the standard build
Trade-off: ~15–20% higher memory usage (geometric mean, pyperformance) per PEP 779
The free-threaded interpreter (python3.14t) is now officially supported—though still optional per PEP 779. Binary wheels, CI images, and hosting platforms can begin treating it as viable for production workloads. Supported doesn't mean seamless yet: many C-extension wheels and build pipelines still need free-threaded work.
Ecosystem Adoption Begins
NumPy 2.3.0 improved free-threaded compatibility in June, proving that major scientific Python libraries can make the transition. This is crucial—Python's dominance in data science and ML means these libraries set the pace for broader adoption.
What This Means for 2026
In one commonly cited framing, the roadmap has three phases. Phase II (3.14: supported) is complete. Phase III—making free-threaded builds the default—remains a future decision contingent on ecosystem support. Key blockers: many C-extension wheels aren't thread-safe yet, the stable ABI doesn't support free-threaded builds, and importing non-ready extensions can re-enable the GIL. 2026 will test whether library maintainers prioritize compatibility.
Python 3.14: More Than Just Threading
While free-threading grabbed headlines, Python 3.14 delivered a packed feature set.
Template Strings (t-strings)
PEP 750 introduced template string literals—think f-strings, but with custom processing. The Steering Council approved PEP 750 in April 2025. This opens doors for safer SQL queries, HTML generation, and DSL creation:
from string.templatelib import Template
template = t"Hello, {name}!"
# Returns a Template object, not a string
# Process it safely before rendering
A key motivator for t-strings is preventing security pitfalls like SQL injection. Note that PEP 750 provides the mechanism (Template objects)—you still need libraries or custom processing functions to enforce safety; built-in SQL/HTML processors are not included.
Deferred Annotation Evaluation
PEP 649 changes how Python handles type annotations. They're now evaluated lazily only when you explicitly request them, fixing long-standing issues with forward references and circular imports. This makes type hints more practical in complex codebases.
The Experimental JIT
Official Windows and macOS binaries now include an experimental Just-In-Time compiler. Early results show promise for long-running, CPU-bound tasks—10% slower to 20% faster depending on workload. It's not production-ready, but it signals Python's performance ambitions.
Under the Hood
Several significant infrastructure changes shipped in 3.14:
PEP 734: Multiple Interpreters in the Stdlib - The new
concurrent.interpretersmodule (andconcurrent.futures.InterpreterPoolExecutor) exposes Python's sub-interpreter support, enabling isolated execution contexts. Combined with free-threading, this opens new concurrency patterns.Tail-call interpreter - A new interpreter mode using computed gotos and tail calls for improved dispatch performance.
PEP 761: Sigstore replaces PGP - Python releases are now signed with Sigstore instead of PGP keys, with Software Bills of Materials (SBOMs) included. This modernizes Python's supply-chain security story.
Windows install manager - A new
py installcommand manages Python versions on Windows, with the legacy installer remaining available through 3.15.
Quality-of-Life Improvements
Syntax highlighting in the PyREPL
Color output in unittest, argparse, json, and calendar CLIs
Remote debugging: pdb can now attach to running processes
Zstandard compression in the stdlib (
compression.zstd)
The Tooling Revolution: uv Takes Over
If 2024 was the year uv arrived, 2025 was the year it conquered.
The Numbers Don't Lie
Astral's Rust-powered package manager is overtaking pip in CI usage in some major projects. Wagtail's BigQuery analysis of PyPI installer metadata found 66% uv vs 34% pip for their project, with similar patterns for FastAPI (~60%) and Django (~43%).
(Caveat: These numbers are inferred from PyPI installer metadata, which has known limitations around caching and CI behavior. Treat as directional, not definitive.)
Why Developers Switched
Speed: 10–100× faster than pip (cold cache benchmarks)
Unified workflow: Drop-in replacement for pip, pip-tools, and virtualenv; also handles broader project/tool/Python management
Backward compatibility: Works with existing requirements.txt and setup.py
No lock-in: Unlike Poetry, uv doesn't force its conventions
The pip Era Isn't Over—But It's Changing
pip remains the standard, but uv has proven that Python packaging can be fast. The pressure is on for the entire ecosystem to raise the bar.
The PSF's Financial Challenges
The Python Software Foundation faced significant financial headwinds in 2025—and the numbers tell a concerning story.
Declining Revenue and Assets
The PSF's yearly revenue and assets "have declined, and costs have increased." The foundation has an annual budget of approximately $5 million and employs 14 people.
In 2023, the PSF had $4,356,000 revenue and spent $4,508,000—running a small loss given their assets from previous years.
Corporate Sponsorship Slowdown
While Python usage continues to surge, "corporate investment back into the language has declined." The PSF has longstanding sponsors, but signing new corporate sponsors has slowed. The foundation is actively pursuing sponsors in the AI and security sectors.
PyCon Running at a Loss
PyCon US has run at a loss for three years. Historically the PSF's primary revenue source, this is no longer true—it now runs at a slight loss. The PSF is willing to subsidize PyCon given its community importance, but the losses add pressure to an already strained budget.
The $1.5 Million Grant Withdrawal
In October, the PSF was recommended for a $1.5 million grant from the National Science Foundation—the largest in its history and their first government funding application. The grant would have funded security work on Python and PyPI, including automated tooling to review packages. (The broader security push is real—Python 3.14's Sigstore signing and SBOMs show the ecosystem is modernizing supply-chain security, with or without federal funding.)
The PSF withdrew. The grant terms included requirements about organizational policies the board found incompatible with PSF operations. A "clawback" provision meant previously spent funds could be rescinded, creating what board member Simon Willison called "an existential risk for the foundation."
The board voted unanimously to withdraw.
Grants Program Paused
The PSF Grants Program—which disbursed a record $952,000 to 174 groups across 52 countries in 2024—was temporarily paused after hitting the 2025 funding cap early.
Community Response
Following the grant withdrawal, individual donations surged. The PSF reported $135K+ from 1,400+ donors including 270+ new members; later reporting put it at $157K+ and 295 new Supporting Members.
However, individual donations alone may not replace institutional funding at scale.
Looking to 2026: Python is one of the world's most popular languages, but its primary support organization faces challenges. The PSF needs sustainable funding models. This may be the most important non-technical challenge facing the Python ecosystem.
Python Gets Its Documentary
On August 28, 2025, "Python: The Documentary" premiered free on YouTube. The feature-length film (~84–90 minutes) traces 34 years of Python history through interviews with Guido van Rossum, Brett Cannon, Mariatta Wijaya, and other key figures.
Filmmaker Ida Bechtle spent a year conducting in-person interviews for the project. A 20-minute preview screened at EuroPython in July generated significant buzz.
The documentary also highlights the important role of PyLadies and addresses controversial topics including the Python 2 to 3 transition. It's worth watching regardless of your Python experience level.
The Ecosystem Evolves
Django Turns 20
Key takeaways: Django 6.0 ships with background tasks + CSP; 5.2 LTS gets composite primary keys; several SQL injection vulns patched; 75% of devs on latest version.
The web framework celebrated two decades with Django 6.0 releasing on December 3. The numbers are impressive: 447 releases over 20 years, 131 security vulnerabilities patched, and 262,203 releases of Django-related packages in the ecosystem (depending on how you classify "Django package").
Django 6.0 key features:
Template Partials - Modularize templates using small, named fragments (GSoC project by Farhan Ali Raza, mentored by Carlton Gibson)
Built-in Background Tasks Framework - Run code outside the HTTP request-response cycle for emails, data processing
Content Security Policy (CSP) - Built-in browser-level security policies against content injection
Modern Email API - Now uses Python's modern email API (EmailMessage, added in Python 3.6)
Django 5.2 LTS (April 2025) also shipped with Composite Primary Keys support and auto-import of models in the shell—with security updates through April 2028.
Security note: Several SQL injection vulnerabilities were discovered and patched throughout 2025: QuerySet.filter() and related methods in November, and FilteredRelation/annotate() in December. The Django Software Foundation was also authorized as a CVE Numbering Authority in 2025.
Per the State of Django 2025 survey, 75% of developers report being on the latest version.
PyCharm Goes Unified
JetBrains merged PyCharm Professional and Community Edition into a single product. Core features (including Jupyter support) remain free, with Pro features requiring a subscription. PyCharm 2025.2 was the final Community Edition release. The open-source codebase continues on GitHub, but the change ends PyCharm CE as a standalone product.
Python 3.9 End of Life
On Halloween, Python 3.9.25 shipped as the final release, ending the 3.9 line after five years. If you're still on 3.9, 2026 is the year to upgrade.
Ecosystem Roundup
Beyond the headlines, 2025 saw steady progress across Python's major pillars:
Scientific Stack:
pandas 2.3.3 added Python 3.14 compatibility (including 3.14t wheels) with continued StringDtype improvements
SciPy 1.16.1 became the first stable release with Python 3.14 support and wheels
Matplotlib 3.10 (3.10.0 landed Dec 2024; 3.10.x rollout continued through 2025) added preliminary free-threaded support and a colorblind-accessible 'petroff10' color cycle
Notebooks & AI:
JupyterLab 4.5 brought 51 features including faster large-notebook saves and a minimap
Jupyter AI v3 betas migrated to LiteLLM, providing 1000+ LLMs out-of-the-box with startup reduced from ~10s to ~2.5s
Machine Learning:
PyTorch 2.9 expanded hardware support (AMD ROCm, Intel XPU, NVIDIA CUDA 13), added Python 3.14/3.14t preview, and introduced a stable C++ ABI for extensions
Alternative Interpreters:
PyPy 7.3.20 (July) maintained Python 2.7 and 3.11 support with Cython compatibility fixes
MicroPython 1.27 (December) added ESP32-C5/P4 and STM32U5xx support, dropped Python 2.7 in build tools
Looking Ahead: Python in 2026
Python 3.15 and Lazy Imports
The headline feature for Python 3.15 (expected October 2026) is PEP 810: Explicit Lazy Imports. The Steering Council accepted the proposal in November. The new lazy keyword allows opt-in deferred module loading:
lazy import json # Loaded only when first used
PEP 810 notes that lazy imports can cut startup time by 50–70% in practice and reduce memory usage for CLI tools and large applications. Unlike the rejected PEP 690, this approach is opt-in, preserving backward compatibility.
Free-Threading Ecosystem Maturation
The technical foundation is solid. Now it's up to library maintainers to add support. Watch for announcements from major packages beyond NumPy—and keep an eye on whether stable ABI support materializes, which would significantly lower the barrier for extension authors.
JIT Compiler Improvements
Python 3.15's JIT compiler supports significantly more bytecode operations than 3.14, with 3-4% geometric mean performance improvements over the standard interpreter. Speedups range from 20% slowdown to over 100% speedup depending on workload.
AI and Python's Continued Dominance
Python's position as the language of AI and ML shows no signs of weakening. As AI development accelerates, Python's ecosystem advantages compound. The question isn't whether Python will remain dominant, but whether its infrastructure can scale with demand.
The Funding Question
The PSF's financial challenges won't resolve themselves. 2026 will test whether the Python community can develop sustainable funding models. This is perhaps the most important non-technical challenge facing Python.
Conclusion
2025 was a year of milestones and challenges. Python took its biggest technical leap in decades with official free-threading support. The tooling ecosystem modernized around uv. The PSF navigated funding pressures that will continue into 2026.
Python enters 2026 stronger technically than ever, but facing real organizational challenges. The language's future depends not just on PEPs and releases, but on the sustainability of the institutions that support it.
The next year will be telling.
Key Dates for 2026
Python 3.15.0 release: October 2026 (expected)
Python 3.10 end of life: October 2026
PyCon US 2026: Date/location not announced as of publication
Python 3.14 bugfix releases: Continuing through 2027

