Real Python Podcast E249 Title Image

Episode 249: Going Beyond requirements.txt With pylock.toml and PEP 751

The Real Python Podcast

May 16, 2025 1h 31m best-practices python tools

What is the best way to record the Python dependencies for the reproducibility of your projects? What advantages will lock files provide for those projects? This week on the show, we welcome back Python Core Developer Brett Cannon to discuss his journey to bring PEP 751 and the pylock.toml file format to the community.

Brett has been working on a way to move beyond the requirements.txt file for over six years. He was on the show previously to discuss his work on PEP 665, which was rejected. He decided to continue to push forward, authoring PEP 751 last year, which was accepted at the end of March this year.

The PEP calls for a new file format to record your project’s dependencies. The goal was to have a standardized immutable record for what should be installed to reproduce your project in a virtual environment. He discusses working with other packaging projects and the compromises involved in creating a standard.

Topics:

  • 00:00:00 – Introduction
  • 00:02:38 – Brett’s roles within the Python community
  • 00:05:41 – How to move beyond requirement.txt?
  • 00:10:58 – What does the community use as project artifacts?
  • 00:15:28 – Building on the success of pyproject.toml
  • 00:17:44 – Introducing PEP 665
  • 00:19:49 – Software Bills of Materials and security
  • 00:25:20 – Back to lock files and security
  • 00:31:08 – Video Course Spotlight
  • 00:32:27 – Not giving up on the idea
  • 00:34:01 – Leading into PEP 751
  • 00:38:54 – Working toward a single multi-platform file
  • 00:43:02 – The final push
  • 00:48:54 – Leaving room for flexibility
  • 00:53:50 – And it’s done, PEP 751 accepted unconditionally
  • 00:58:06 – Keynote speaker at EuroPython 2025
  • 00:58:45 – What are uv workspaces?
  • 01:01:02 – Considering the use of lock files in data science
  • 01:05:23 – Updates about Python for WASI and Emscripten
  • 01:13:51 – Clarification on WASI
  • 01:20:28 – Future conversation about Python launcher
  • 01:23:04 – What are you excited about in the world of Python?
  • 01:24:25 – What do you want to learn next?
  • 01:28:41 – What’s the best way to follow your work online?
  • 01:31:00 – Thanks and goodbye

Show Links: