Something I don't see being mentioned in the comments:
What's a really frustrating part of working with the C API?
Setting up the compile/link flags!
The python3-config works generally well but is only available at the OS level. But you don't want to mess with that (e.g., to access pip-installed packages). Beyond that, everything is a mess! python3 -m venv doesn't even bother creating such a script. anaconda/miniconda? Don't even try!.
So every package pollutes their build scripts with many hardcoded `python3 -c "import sys: print..."` calls.
I've opened a CPython/PR that may help a bit by adding `python3 -m sysconfig --json` flag [0]