Python Packaging Demystified

Bernat Gabor


See in schedule

For most developers, Python packaging feels like a magical (and cryptic) black box. Apps and libraries use a variety of tools and have different packaging challenges. Once you start reading up on this topic, you come across many seemingly random components: setuptools, pip, poetry, wheels, pyproject.toml,, virtual environments, zippapp, shiv, pex, and so on. The sheer number of concepts to master can be overwhelming, leading many programmers to conclude that packaging in Python is a mess. Before you despair, join me in this tutorial session where you'll have a chance to learn how to package and publish/deploy your library and/or application through hands-on exercises.

Type: Training (180 mins); Python level: Beginner; Domain level: Beginner

Bernat Gabor

Bloomberg LP

I work at Bloomberg, a technology company with more than 6,000 software engineers around the world – 2,000 of whom use Python in their daily roles. I'm part of the company's Python Guild, a group of engineers dedicated to improving the adoption, usage, and best practices of Python within the company. Over the past two years, I've given multiple presentations to various groups (each with 100+ attendees): twice at EuroPython, once at PyCon US, twice at PyLondonium, and once at the London Python Meetup. I've been using Python since 2011 and have been a busy participant in the open-source Python community. I am the maintainer of the virtualenv package (tool allowing the creation of Python virtual environments for all Python versions and interpreter types, including CPython, Jython and PyPy). I also maintain the tox tool (allows for easy testing to ensure Python code works under multiple Python versions/library versions) and have contributed to various other Python packages.