Where are you getting these numbers?

Python 3.11 on Debian is around 21 MB installed size (python3.11-minimal + libpython3.11-minimal + libpython3.11-stdlib), not counting common shared dependencies like libc, ncurses, liblzma, libsqlite3, etc.

Looking at the embeddable distribution for Windows (32-bit), Python 3.11 is 17.5 MB unpacked, 3.13 is slightly smaller at 17.2 MB and 3.14 is 18.4 MB (and adds the _zstd and _remote_debugging modules).

This is the "standard" configure + make + make install, which includes libpython.a, header files, Python's own tests (python -m test), plus __pycache__, and debug symbols. Distros of course may split it up into multiple packages, split out debug symbols, etc.

See `docker run -it --rm -w /store ghcr.io/spack/all-pythons:2025-10-10`.

To be fair, the main contributors are tests and the static library.

Just looking at libpython.so

     10M libpython3.6m.so.1.0
     11M libpython3.7m.so.1.0
     13M libpython3.8.so.1.0
     14M libpython3.9.so.1.0
     17M libpython3.10.so.1.0
     24M libpython3.11.so.1.0
     30M libpython3.12.so.1.0
     30M libpython3.13.so.1.0
     34M libpython3.14.so.1.0
The static library is likely large because of `--with-optimizations` enabling LTO (so smaller shared libs, but larger static libs).