pypy3 -m pip install pybind11 from a
conda environment results in the headers being installed directly into
$CONDA_PREFIX/include. Whereas for a CPython distribution, it would install to something like
pypy's defaults, this breaks the include paths for extensions. Also, since every library’s headers are dumped into the same folder, you end up with name collisions and files being overwritten.
The defaults seem to all be configured in
distutils/command/install.py , with the
'pypy' scheme being the only broken one: