Episode 303: Free-Threaded Python's History & uv in Production
The Real Python Podcast
How many attempts have been made to remove Python’s Global Interpreter Lock (GIL)? How do they compare to the current approach? Christopher Trudeau is back on the show this week with another batch of PyCoder’s Weekly articles and projects.
Episode Sponsor:
Christopher shares a recent article about Thomas Wouters’ talk at PyCon US 2026. The talk, titled “Free-threaded Python: past, present, and future,” covers the efforts to remove the GIL starting in 1996. He explains that threads are complex, but they allow multiple tasks to run concurrently within a single process and its address space.
The GIL is how CPython implements threading. The GIL protects Python objects and their reference counts, which determine the current objects in use. The talk also looks forward and shares the current work to remove the GIL, now named free-threaded Python, and the goals for the near future.
We also share other articles and projects from the Python community, including community announcements, a roundup of recent Real Python tutorials and video courses, using uv in Production, employing Wagtail as Django admin on steroids, managing and measuring Python code quality, a pure-Python implementation of jq, and a project to bring interactivity to plotnine.
This episode is sponsored by AURI by Endor Labs
Course Spotlight: Thread Safety in Python: Locks and Other Techniques
In this video course, you’ll learn about the issues that can occur when your code is run in a multithreaded environment. Then you’ll explore the various synchronization primitives available in Python’s threading module, such as locks, which help you make your code safe.
Topics:
- 00:00:00 – Introduction
- 00:03:08 – PEP 836: JIT Go Brrr: The Path to a Supported JIT Compiler for CPython
- 00:04:34 – PyCon US 2026 Videos Are Up
- 00:04:53 – Thinking About Running for the PSF Board? Let’s Talk!
- 00:05:30 – How to Get Started With the GitHub Copilot CLI
- 00:06:27 – Python 3.15 Preview: Upgraded JIT Compiler
- 00:07:23 – Testing MCP Servers With a Python MCP Client
- 00:08:10 – How to Use GitHub
- 00:08:50 – Why I Wrote PEP 832: Virtual Environment Discovery
- 00:09:46 – Free-Threaded Python: Past, Present, and Future
- 00:16:51 – Sponsor: AURI by EndorLabs
- 00:17:38 –
uvin Production: The Speed Is Real, the Integration Isn’t Free - 00:26:18 – Wagtail as Django Admin on Steroids
- 00:29:52 – Video Course Spotlight
- 00:31:11 – Managing and Measuring Python Code Quality
- 00:43:10 – purejq: A Pure-Python Implementation of
jq - 00:46:41 – ninejs: Bringing ✨interactivity✨ to plotnine
- 00:49:15 – Thanks and goodbye
News:
- PEP 836: JIT Go Brrr: The Path to a Supported JIT Compiler for CPython (Draft)
- The Path to a Supported JIT Compiler for CPython
- PyCon US 2026 Videos Are Up
- Thinking About Running for the PSF Board? Let’s Talk! – The Python Software Foundation Board has announced two office-hour sessions dedicated to giving information on running for the PSF Board. If you’re thinking of running in the upcoming election, these sessions can help you understand the ins and outs.
Real Python News:
- How to Get Started With the GitHub Copilot CLI – Tutorial
- Managing and Measuring Python Code Quality – Video CoursePython 3.15 Preview: Upgraded JIT Compiler – Tutorial
- Testing MCP Servers With a Python MCP Client – Video Course
- How to Use GitHub – Real Python
Show Links:
- Why I Wrote PEP 832: Virtual Environment Discovery – PEP 832 proposes a way to describe where your virtual environment is so that your tools can look in the right place. Although a relatively simple proposal it has caused some contention in the community. This post by Brett, the PEP’s author, describes his reasoning.
- Free-Threaded Python: Past, Present, and Future – This post summarizes a talk by core developer Thomas Wouters at PyCon US 2026 on Free-threaded Python: the attempt to remove the GIL. It describes why it is being done and what future work looks like.
- Free threaded Python past, present and future - YouTube
uvin Production: The Speed Is Real, the Integration Isn’t Free – Oleg’s work moved their tooling frompiptouvand lived with it for ~90 days. They discovered that the speed is real, but that doesn’t mean there aren’t complications.- Wagtail as Django Admin on Steroids – Wagtail can do pretty much everything the Django Admin can do, but includes a much more modern UI and more features. This article shows you how to use Wagtail as an Admin alternative.
- Managing and Measuring Python Code Quality – Master Python code quality tools like linters, formatters, type checkers, and profilers to measure, manage, and improve the code you write.
- Python Code Quality: Best Practices and Tools – Real Python
Projects:
- purejq: A Pure-Python Implementation of
jq - ninejs: Bringing ✨interactivity✨ to plotnine
- ninejs - Documentation
Additional Links:
- Episode #297: Improving Python Through PEPs and Protocols
- PEP 766
- PEP 8 – Style Guide for Python Code | peps.python.org
- How to Write Beautiful Python Code With PEP 8
- AURI for Developers - AI-Native AppSec Platform - Endor Labs




