Using Virtual Environments in Docker & Comparing Python Dev Tools

The Real Python Podcast

Should you use a Python virtual environment in a Docker container? What are the advantages of using the same development practices locally and inside a container? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.

We share a recent post by Hynek Schlawack about building Python projects using Docker containers. Hynek argues for using virtual environments for these projects, like developing a local one. He’s found that keeping your code in an isolated, well-defined location and structure avoids confusion and complexity.

We also discuss our development setups, including Python versions, code editors, virtual environment practices, terminals, and customizations. We dig into how your programming history affects the tools you use.

We share several other articles and projects from the Python community, including a group of new releases, addressing the “why” in comments, comparing a data science workflow in Python and R, removing common problems from CSV files, and a project for creating HTML tables in Django.

This episode is sponsored by InfluxData.

Course Spotlight: Advanced Python import Techniques

The Python import system is as powerful as it is useful. In this in-depth video course, you’ll learn how to harness this power to improve the structure and maintainability of your code.

Topics:

  • 00:00:00 – Introduction
  • 00:02:55 – Python Releases 3.12.6, 3.11.10, 3.10.15, 3.9.20, and 3.8.20
  • 00:03:26 – Python Release Python 3.13.0rc2
  • 00:04:07 – Django Security Releases Issued: 5.1.1, 5.0.9, and 4.2.16
  • 00:04:36 – Polars Has a New Lightweight Plotting Backend
  • 00:05:49 – Why I Still Use Python Virtual Environments in Docker
  • 00:11:37 – How to Use Conditional Expressions With NumPy where()
  • 00:15:55 – Sponsor: InfluxData
  • 00:16:39 – PythonistR: A Match Made in Data Heaven
  • 00:23:44 – Why Not Comments
  • 00:26:48 – Video Course Spotlight
  • 00:28:10 – Discussion: Personal development setups
  • 00:51:01 – csv_trimming: Remove Common Ugliness From CSV Files
  • 00:53:01 – django-tables2: Create HTML Tables in Django
  • 00:54:39 – Thanks and goodbye

News:

  • Python Releases 3.12.6, 3.11.10, 3.10.15, 3.9.20, and 3.8.20
  • Python Release Python 3.13.0rc2
  • Django Security Releases Issued: 5.1.1, 5.0.9, and 4.2.16

Show Links:

  • Polars Has a New Lightweight Plotting Backend – Polars 1.6 allows you to natively create beautiful plots without pandas, NumPy, or PyArrow. This is enabled by Narwhals, a lightweight compatibility layer between dataframe libraries.
  • Why I Still Use Python Virtual Environments in Docker – Hynek often gets challenged when he suggests the use of virtual environments within Docker containers, and this post explains why he still does.
  • How to Use Conditional Expressions With NumPy where() – This tutorial teaches you how to use the where() function to select elements from your NumPy arrays based on a condition. You’ll learn how to perform various operations on those elements and even replace them with elements from a separate array or arrays.
  • PythonistR: A Ma

To listen to explicit episodes, sign in.

Stay up to date with this show

Sign in or sign up to follow shows, save episodes and get the latest updates.

Select a country or region

Africa, Middle East, and India

Asia Pacific

Europe

Latin America and the Caribbean

The United States and Canada