cover of episode Using Virtual Environments in Docker & Comparing Python Dev Tools

Using Virtual Environments in Docker & Comparing Python Dev Tools

2024/9/27
logo of podcast The Real Python Podcast

The Real Python Podcast

AI Deep Dive AI Chapters Transcript
People
C
Christopher Bailey
C
Christopher Trudeau
Topics
Christopher Bailey和Christopher Trudeau讨论了在Docker容器中使用Python虚拟环境的优缺点,以及本地和容器中使用相同开发实践的益处。他们认为,使用虚拟环境可以提高代码的可预测性和可维护性,避免混乱和复杂性,即使在Docker容器中也是如此。他们还分享了各自的开发环境设置,包括Python版本、代码编辑器、虚拟环境实践、终端和自定义设置等,并探讨了编程经验如何影响工具选择。 Christopher Trudeau主要从虚拟环境的角度阐述了自己的观点。他认为虚拟环境是Python的核心功能,应该在本地开发和Docker容器中保持一致的使用习惯。他强调了保持一致的开发方式、理解代码结构以及降低导入复杂性的重要性。他还反对使用`pip install --user`,认为它会造成Python包管理的混乱。他认为复杂性不在于按键数量,而在于推理操作后果的难度。他分享了自己使用虚拟环境的经验,以及如何处理不同项目和不同Python版本的依赖关系。

Deep Dive

Shownotes Transcript

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:

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 Match Made in Data Heaven) – In data science you’ll sometimes hear a debate between R and Python. Cosima says ‘why not choose both?’ She outlines a data pipeline that uses the best tool for each job.

  • Why Not Comments) – This post talks about why you might want to include information in your code comments about why you didn’t take a particular approach.

Discussion:

Projects:

Additional Links:

Level up your Python skills with our expert-led courses:

Support the podcast & join our community of Pythonistas)