Python packaging is quickly evolving and new tools pop up on a regular basis. Lots of talks and posts on packaging exist but none of them give a structured, unbiased overview of the available tools.
This talk will shed light on the jungle of packaging and environment management tools, comparing them on a basis of predefined features.
Python packaging is quickly evolving and new tools pop up on a regular basis. Lots of talks and posts on packaging exist but none of them give a structured, unbiased overview of the available tools.
This talk will shed light on the jungle of packaging and environment management tools, comparing them on a basis of predefined features.
We will categorize tools using the following categories:
- Python version management
- Environment management
- Package management
- Package building
- Package publishing
A lot of tools exist, including pyenv, pip, venv, poetry, hatch, and many more. We will categorize all of them and discuss some in more detail, e.g. hatch. Most importantly, we will evaluate the tools on the basis of features that are important for developers like:
- Does the tool manage dependencies?
- Can it manage Python installations?
- Does it have a clean build/publish flow?
- Does it allow for plugins?
- Does it support important PEPs, e.g. PEP 660, PEP 621, PEP 582?
## Audience
This talk is intended for developers who
- Have used packaging and want to get to know new tools
- Want to have an overview of existing tools and their capabilities
## Existing talks on the topic of packaging
- PyCon US 2021 Jeremy Paige / Packaging Python in 2021
- PyCon US 2021 TUTORIAL / BernΓ‘t Gabor / Python Packaging Demystified
- EuroPython 2022 Packaging in Python in 2022