<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0" -->

---
title: Episode #303: Free-Threaded Python's History & uv in...
description: Real Python Podcast episode 303 covers a range of Python community topics. The main focus is on free-threaded Python — the history of attempts to remove the...
canonical: https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Episode #303: Free-Threaded Python's History & uv in Production – The Real Python Podcast | daily.dev
og:description: Real Python Podcast episode 303 covers a range of Python community topics. The main focus is on free-threaded Python — the history of attempts to remove the...
og:url: https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0
og:image: https://api.daily.dev/og/posts/Xpn82hqB0.png
og:image:alt: Episode #303: Free-Threaded Python's History & uv in Production – The Real Python Podcast
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Episode #303: Free-Threaded Python's History & uv in Production – The Real Python Podcast

**[Real Python](https://daily.dev/sources/rpython)** · 5 min read · 0 upvotes · 0 comments

## Summary

Real Python Podcast episode 303 covers a range of Python community topics. The main focus is on free-threaded Python — the history of attempts to remove the GIL dating back to 1996, summarizing Thomas Wouters' PyCon US 2026 talk on past, present, and future efforts. Also discussed: a 90-day real-world experience using uv in production (speed gains are real but integration has caveats), using Wagtail as a Django admin replacement, managing Python code quality with linters and type checkers, PEP 836 for a supported JIT compiler in CPython, PEP 832 for virtual environment discovery, a pure-Python jq implementation (purejq), and the ninejs project for adding interactivity to plotnine charts.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://realpython.com/podcasts/rpp/303>

## Questions this post answers

### What issues come up when migrating from pip to uv in a production environment?

Speed improvements from switching to uv are real, but the migration is not free of complications. After roughly 90 days running uv in production, one team found the tooling integration introduced friction points that offset some of the simplicity gained from faster installs, meaning teams should budget time for working through integration issues rather than expecting a drop-in replacement for pip.

_Developers weighing a pip-to-uv migration can track real-world tooling experiences like this on daily.dev._

### What is free-threaded Python and why is the GIL being removed?

Free-threaded Python is the current effort to remove CPython's Global Interpreter Lock (GIL), which protects Python objects and their reference counts but prevents true multi-core thread concurrency. Attempts to remove the GIL date back to 1996; core developer Thomas Wouters covered this history and the ongoing work toward a GIL-free future in a PyCon US talk.

_Anyone tracking CPython concurrency changes can follow free-threaded Python progress on daily.dev._

### Can Wagtail be used as a replacement for the Django admin interface?

Wagtail can serve as a full replacement for the Django Admin, offering nearly all the same functionality along with a more modern user interface and additional features not found in the default Django admin panel, making it a viable alternative for teams wanting a richer content management experience within Django projects.

_Django developers evaluating admin interface alternatives can find comparisons like this on daily.dev._

## Similar posts on daily.dev

- [Episode \#307: Improving NumPy Performance on Free-Threaded Python – The Real Python Podcast](https://daily.dev/posts/episode-307-improving-numpy-performance-on-free-threaded-python-the-real-python-podcast-rbkirvqhs) · Real Python · 0 upvotes · 0 comments
- [Python Bytes Podcast](https://daily.dev/posts/python-bytes-podcast-qabodbvqt) · Planet Python · 0 upvotes · 0 comments
- [Interview With Nathan Goldbaum](https://daily.dev/posts/interview-with-nathan-goldbaum-9cg5oriwl) · Lobsters · 0 upvotes · 0 comments
- [Episode \#280: Considering Fast and Slow in Python Programming – The Real Python Podcast](https://daily.dev/posts/episode-280-considering-fast-and-slow-in-python-programming-the-real-python-podcast-ltsfzhu39) · Real Python · 1 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#django](https://daily.dev/tags/django)

[View this post on daily.dev](https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Episode #303: Free-Threaded Python's History & uv in Production – The Real Python Podcast","url":"https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0"},"datePublished":"2026-07-17T12:15:31.267Z","dateModified":"2026-09-13T21:30:15.370Z","description":"Real Python Podcast episode 303 covers a range of Python community topics. The main focus is on free-threaded Python — the history of attempts to remove the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/421c6c17ca6bda0d7e4671a9cdbce1ad?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/421c6c17ca6bda0d7e4671a9cdbce1ad?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Real Python","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Real Python","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rpython","url":"https://daily.dev/sources/rpython"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,django","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Real Python","item":"https://daily.dev/sources/rpython"},{"@type":"ListItem","position":3,"name":"Episode #303: Free-Threaded Python's History & uv in Production – The Real Python Podcast"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/episode-303-free-threaded-python-s-history-uv-in-production-the-real-python-podcast-xpn82hqb0#faq","mainEntity":[{"@type":"Question","name":"What issues come up when migrating from pip to uv in a production environment?","acceptedAnswer":{"@type":"Answer","text":"Speed improvements from switching to uv are real, but the migration is not free of complications. After roughly 90 days running uv in production, one team found the tooling integration introduced friction points that offset some of the simplicity gained from faster installs, meaning teams should budget time for working through integration issues rather than expecting a drop-in replacement for pip. Developers weighing a pip-to-uv migration can track real-world tooling experiences like this on daily.dev."}},{"@type":"Question","name":"What is free-threaded Python and why is the GIL being removed?","acceptedAnswer":{"@type":"Answer","text":"Free-threaded Python is the current effort to remove CPython's Global Interpreter Lock (GIL), which protects Python objects and their reference counts but prevents true multi-core thread concurrency. Attempts to remove the GIL date back to 1996; core developer Thomas Wouters covered this history and the ongoing work toward a GIL-free future in a PyCon US talk. Anyone tracking CPython concurrency changes can follow free-threaded Python progress on daily.dev."}},{"@type":"Question","name":"Can Wagtail be used as a replacement for the Django admin interface?","acceptedAnswer":{"@type":"Answer","text":"Wagtail can serve as a full replacement for the Django Admin, offering nearly all the same functionality along with a more modern user interface and additional features not found in the default Django admin panel, making it a viable alternative for teams wanting a richer content management experience within Django projects. Django developers evaluating admin interface alternatives can find comparisons like this on daily.dev."}}]}
```

