# Python Packaging Tool Examples

In the last few years, Python packaging has seen a lot of change. Instead of every
project using setuptools/setup.py, there are now many tools to choose from when building
and distributing Python packages. This can be overwhelming for new and experienced
developers alike.

My goal with the Python Developer Tooling Handbook is to help you make informed choices
to make your Python development easier and more productive.

As I've tried to learn the ins-and-outs of these tools, I created a series of example
repositories showing how to use each of the major packaging tools. I hope these examples
will be helpful to you as you learn about Python packaging.

- [Setuptools with
  setup.py](https://github.com/python-developer-tooling-handbook/demo-setuptools-with-setuppy)
- [Setuptools with pyproject.toml
  only](https://github.com/python-developer-tooling-handbook/demo-setuptools-without-setuppy)
- [Flit](https://github.com/python-developer-tooling-handbook/demo-flit)
- [Poetry](https://github.com/python-developer-tooling-handbook/demo-poetry)
- [PDM](https://github.com/python-developer-tooling-handbook/demo-pdm)
- [Hatch](https://github.com/python-developer-tooling-handbook/demo-hatch)
- [uv](https://github.com/python-developer-tooling-handbook/demo-uv)
