
Options for Packaging Your Python Application: Wheels, Docker, and More
08/28/20 • 74 min
Have you wondered, how should I package my Python code? You’ve written the application, but now you need to distribute it to the machines it’s intended to run on. It depends on what the code is, the libraries it depends on, and with whom do you want to share it. This week on the show we have Itamar Turner-Trauring, creator of the website pythonspeed.com. We discuss his article “Options for Packaging Your Python Code: Wheels, Conda, Docker, and More,” covering the how of sharing your code.
Itamar also briefly discusses his Python memory profiler named Fil. We talk about his recent PyCon 2020 presentation, “Small Big Data: What to do When Your Data Doesn’t Fit in Memory.” We also cover several of the resources available on his website for data scientists that want to get deeper into Docker.
Course Spotlight: Python Coding Interviews: Tips & Best Practices
In this step-by-step course, you’ll learn how to take your Python coding interview skills to the next level and use Python’s built-in functions and modules to solve problems faster and more easily.
Topics:
- 00:00:00 – Introduction
- 00:01:36 – About the naming of pythonspeed.com
- 00:03:47 – Fil - Python Memory Profiler
- 00:06:44 – Small Big Data: What to do when your data doesn’t fit in memory - PyCon 2020
- 00:12:17 – Options for packaging your Python code: Wheels, Conda, Docker, and more
- 00:15:13 – Python Wheels
- 00:19:22 – pipx: Install and Run Python Applications in Isolated Environments
- 00:20:52 – PEX, and friends
- 00:24:51 – System Package, RPM or DEB
- 00:29:42 – Conda Packaging and conda-forge
- 00:36:09 – Video Course Spotlight
- 00:37:23 – Self-contained executable: PyInstaller, PyOxidizer, Briefcase
- 00:43:45 – Container image (Docker, Singularity)
- 00:54:55 – Why alpine may not be the best choice
- 01:05:28 – Singularity
- 01:07:50 – What are you excited about in the world of Python?
- 01:10:40 – What do you want to learn next?
- 01:13:54 – Thanks and Goodbye
Show Links:
- Python => Speed: Ship Better Python Software, Faster
- Code Without Rules: Helping You Become a Productive Programmer and Get Work/Life Balance
- Talk Python to Me – Episode #274: Profiling Data Science Code with FIL
- Fil: A New Python Memory Profiler for Data Scientists and Scientists
- Small Big Data: What to do When Your Data Doesn’t Fit in Memory - PyCon 2020
- Episode 16: Thinking in Pandas: Python Data Analysis the Right Way
- Options for Packaging Your Python Code: Wheels, Conda, Docker, and More
- What Are Python Wheels and Why Should You Care?: Real Python article
- pipx — Install and Run Python Applications in Isolated Environments
- pex: A Library and Tool for Generating .pex (Python EXecutable) Files
- WTF is PEX?: Twitter Lightning Talk - YouTube
- RPM (Red Hat Package Manager): Wikipedia article
- DEB (Debian Package - file format): Wikipedia article
- Conda: Package, Dependency and Environment Management for Any Language
- conda-forge: A community-led collection of recipes, build infrastructure and distributions for the conda package manager
- PyInstaller: Freezes (packages) Python applications into stand-alone executables
- PyOxidizer: A utility for producing binaries that embed Python
- Briefcase: Convert a Python project into a standalone native application
- Docker: Get Started with Docker
- Just Enough Docker Packaging: Book
- Episo...
Have you wondered, how should I package my Python code? You’ve written the application, but now you need to distribute it to the machines it’s intended to run on. It depends on what the code is, the libraries it depends on, and with whom do you want to share it. This week on the show we have Itamar Turner-Trauring, creator of the website pythonspeed.com. We discuss his article “Options for Packaging Your Python Code: Wheels, Conda, Docker, and More,” covering the how of sharing your code.
Itamar also briefly discusses his Python memory profiler named Fil. We talk about his recent PyCon 2020 presentation, “Small Big Data: What to do When Your Data Doesn’t Fit in Memory.” We also cover several of the resources available on his website for data scientists that want to get deeper into Docker.
Course Spotlight: Python Coding Interviews: Tips & Best Practices
In this step-by-step course, you’ll learn how to take your Python coding interview skills to the next level and use Python’s built-in functions and modules to solve problems faster and more easily.
Topics:
- 00:00:00 – Introduction
- 00:01:36 – About the naming of pythonspeed.com
- 00:03:47 – Fil - Python Memory Profiler
- 00:06:44 – Small Big Data: What to do when your data doesn’t fit in memory - PyCon 2020
- 00:12:17 – Options for packaging your Python code: Wheels, Conda, Docker, and more
- 00:15:13 – Python Wheels
- 00:19:22 – pipx: Install and Run Python Applications in Isolated Environments
- 00:20:52 – PEX, and friends
- 00:24:51 – System Package, RPM or DEB
- 00:29:42 – Conda Packaging and conda-forge
- 00:36:09 – Video Course Spotlight
- 00:37:23 – Self-contained executable: PyInstaller, PyOxidizer, Briefcase
- 00:43:45 – Container image (Docker, Singularity)
- 00:54:55 – Why alpine may not be the best choice
- 01:05:28 – Singularity
- 01:07:50 – What are you excited about in the world of Python?
- 01:10:40 – What do you want to learn next?
- 01:13:54 – Thanks and Goodbye
Show Links:
- Python => Speed: Ship Better Python Software, Faster
- Code Without Rules: Helping You Become a Productive Programmer and Get Work/Life Balance
- Talk Python to Me – Episode #274: Profiling Data Science Code with FIL
- Fil: A New Python Memory Profiler for Data Scientists and Scientists
- Small Big Data: What to do When Your Data Doesn’t Fit in Memory - PyCon 2020
- Episode 16: Thinking in Pandas: Python Data Analysis the Right Way
- Options for Packaging Your Python Code: Wheels, Conda, Docker, and More
- What Are Python Wheels and Why Should You Care?: Real Python article
- pipx — Install and Run Python Applications in Isolated Environments
- pex: A Library and Tool for Generating .pex (Python EXecutable) Files
- WTF is PEX?: Twitter Lightning Talk - YouTube
- RPM (Red Hat Package Manager): Wikipedia article
- DEB (Debian Package - file format): Wikipedia article
- Conda: Package, Dependency and Environment Management for Any Language
- conda-forge: A community-led collection of recipes, build infrastructure and distributions for the conda package manager
- PyInstaller: Freezes (packages) Python applications into stand-alone executables
- PyOxidizer: A utility for producing binaries that embed Python
- Briefcase: Convert a Python project into a standalone native application
- Docker: Get Started with Docker
- Just Enough Docker Packaging: Book
- Episo...
Previous Episode

Python Wheels and Pass by Reference in Python
Have you wondered what are Python wheels? How are they used to package Python code? Does Python use pass by value or pass by reference? This week on the show, David Amos is here to help answer these questions, and he has brought another batch of PyCoder’s Weekly articles and projects.
We talk about an article called “What are Python Wheels, and Why Should You Care.” David talks about a Real Python article about pass by reference in Python. We cover several other articles and projects from the Python community including: transcribing speech to text, 4 powerful features Python is still missing, 10 awesome pythonic one-liners, and even more options for packaging your Python code.
Course Spotlight: Practical Recipes for Working With Files in Python
In this course, you’ll learn how you can work with files in Python by using built-in modules to perform practical tasks that involve groups of files, like renaming them, moving them around, archiving them, and getting their metadata.
Topics:
- 00:00:00 – Introduction
- 00:01:25 – 4 Powerful Features Python Is Still Missing
- 00:14:41 – What Are Python Wheels and Why Should You Care?
- 00:23:58 – 10 Awesome Pythonic One-Liners Explained
- 00:38:11 – Video Course Spotlight
- 00:39:14 – How to Transcribe Speech Recordings Into Text With Python
- 00:43:34 – Pass by Reference in Python: Background and Best Practices
- 00:49:54 – Options for Packaging Your Python Code: Wheels, Conda, Docker, and More
- 00:55:53 – PyOxidizer: A Modern Python Application Packaging and Distribution Tool
- 01:00:13 – Python and PDF: A Review of Existing Tools
- 01:04:01 – Thanks and Goodbye
Show Links:
4 Powerful Features Python Is Still Missing – Python doesn’t have true constants, nor does it implement features like tail recursion optimization that many compiled languages employ. Find out what other features Python is “missing” when compared to other languages, and why the core developers haven’t added these features to the language.
What Are Python Wheels and Why Should You Care? – In this tutorial, you’ll learn what Python wheels are and why you should care as both a developer and end user of Python packages. You’ll see how the wheel format has gained momentum over the last decade and how it has made the package installation process faster and more stable.
10 Awesome Pythonic One-Liners Explained – Some things in Python are just better on one line.
How to Transcribe Speech Recordings Into Text With Python – Learn to transcribe speech in recordings like MP3s into text with Python and AssemblyAI’s API
Pass by Reference in Python: Background and Best Practices – In this tutorial, you’ll explore the concept of passing by reference and learn how it relates to Python’s own system for handling function arguments. You’ll look at several use cases for passing by reference and learn some best practices for implementing pass-by-reference constructs in Python.
Options for Packaging Your Python Code: Wheels, Conda, Docker, and More – There’s a lot of ways to package your Python code. Find out which one is right for you.
PyOxidizer: A Modern Python Application Packaging and Distribution Tool
Python and PDF: A Review of Existing Tools – The ultimate list of PDF tools in Python.
Additional Links:
- Cool New Features in Python 3.8: More Precise Types - Real Python article
- Python 101 - Chapter 39 – Python wheels
- Language Design Is Not Just Solving Puzzles: Guido Van Rossum
- How to Publish an Open-Source Python Package to PyPI - Real Python article
- AssemblyAI: Speech-to-Text API
Level up your Python skills with our expert-led courses:
Next Episode

Data Version Control in Python and Real Python Video Transcripts
Wouldn’t it be nice to a use a form of version control for data? Something that would allow you to track and version your datasets and models. Well, that’s what the tool called DVC is designed to do. This week on the show, David Amos is here and he’s brought another batch of PyCoder’s Weekly articles and projects.
David starts with a Real Python article titled, “Data Version Control With Python and DVC”. We also cover several other articles and projects from the Python community including: where to get exposure to well-written code, delegation – composition and inheritance, good Python project ideas for high school students, never run Python in your downloads folder, and more.
We also have a special guest this week. I talk to Sadie Parker, who recently joined the Real Python team to help create and edit transcripts for all the Real Python video courses. We talk about how to take advantage of all the features this new resource provides. Sadie also discusses how she uses Python to speed up and simplify the editing process. The transcripts and closed captions are now live on the website for all new courses, and we are working through the back catalog.
Course Spotlight: Parallel Iteration With Python’s zip() Function
In this course, you’ll learn how to use the Python zip() function to solve common programming problems. You’ll learn how to traverse multiple iterables in parallel and create dictionaries with just a few lines of code.
Topics:
- 00:00:00 – Introduction
- 00:02:01 – Data Version Control With Python and DVC
- 00:08:57 – Where Do You Go to Get Exposure to Well-Written Code?
- 00:13:13 – Delegation: Composition and Inheritance in Object-Oriented Programming
- 00:21:46 – What Are Some Good Python Project Ideas for High School Students?
- 00:26:53 – Video Course Spotlight
- 00:27:48 – Never Run Python in Your Downloads Folder
- 00:35:55 – present: A Terminal-Based Presentation Tool With Colors and Effects
- 00:37:36 – Mini Raspberry Pi Boston Dynamics–inspired Robot
- 00:41:48 – Sadie Parker and Transcripts for Real Python Video Courses
- 00:59:26 – Thanks and Goodbye
Show Links:
Data Version Control With Python and DVC – In this tutorial, you’ll learn to use DVC, a powerful tool that solves many problems encountered in machine learning and data science. You’ll find out how data version control helps you to track your data, share development machines with your team, and create easily reproducible experiments!
Where Do You Go to Get Exposure to Well-Written Code? – Maybe someone needs to start a Python reading club...
Delegation: Composition and Inheritance in Object-Oriented Programming – Delegation is often considered one of the three pillars of object-oriented programming. Learn how to use this powerful concept in Python.
What Are Some Good Python Project Ideas for High School Students? – Honestly, some of these ideas are good for any beginning Pythonista!
Never Run Python in Your Downloads Folder – Learn about security issues that exploit how Python interacts with PATH and why you should always think twice about your current working directory.
present: A Terminal-Based Presentation Tool With Colors and Effects
Mini Raspberry Pi Boston Dynamics–inspired Robot – See how one Redditor taught themselves robotics by building a miniature version of a Boston Dynamic’s robot dog “Spot” using a Raspberry Pi, C++, and Python.
Additional Links:
If you like this episode you’ll love

The Edtech Podcast

The Why And The What – Product Management Podcast

The Art of LiveOps

CodeWinds - Leading edge web developer news and training | javascript / React.js / Node.js / HTML5 / web development - Jeff Barczewski

Joomla Beat Podcast | Web design, development, online marketing, social media & website management
Episode Comments
Featured in these lists
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/the-real-python-podcast-186798/options-for-packaging-your-python-application-wheels-docker-and-more-17007716"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to options for packaging your python application: wheels, docker, and more on goodpods" style="width: 225px" /> </a>
Copy