Andy's Cafe

Python Packaging Troubles

Page created :
Last updated :

Today I was reminded of the fact that building a python package requires you to list what non-source-code files need to appear in the final build artifact.

And apparently the way to do that is to make a MANIFEST.in at the top level of the repository. I just learned this is a setuptools concept and I wonder what it is like in the pyproject.toml world.

The python packaging world was changing even when I first got into my professional career, but there were enough scripts to automate builds and practices around it that I internalized to think about how else this could be done. And so I’d like to get to know some of the more popular packaging solutions for python and document my findings here.

Note to self: come back to this with a little MVP project thing that can show the differences how setuptools and pyproject.toml handle these files the same / differently.

Some questions to answer:

  1. Given JSON files in some src/ directory, or nested deeper, how do you make these appear and readable by the project after a pip install?
  2. Does anything need to change after a pip install -e .?
  3. What’s the easiest build tool to pick to support a pyproject.toml project?

Reply via email