purelib: directory for site-specific, non-platform-specific files
(https://docs.python.org/3/library/sysconfig.html)

"site-specific" doesn't sound like packages should install anything
there.

"site-specific" may be meant from the perspective of the Python interpreter, not the whole system, so it does sound correct to me - especially if you consider that Python modules are separated into the standard library and dist-packages.

> Perhaps the bug is that Python_SITELIB is used and it should be
> something else?

I've tried Python_STDLIB (=sysconfig.get_path('stdlib')), but that's definitely wrong: It points to /usr/lib/python3.11

Python packages are normally installed into /usr/lib/python3/dist-packages/ (or /usr/lib/python3.11/dist-packages/ if they're interpreter-specific). Uranium used to be installed into /usr/lib/python3/dist-packages/, because it's a pure Python library and doesn't depend on the interpreter version.

Python_STDARCH and Python_SITEARCH have the same values as Python_STDLIB and Python_SITELIB, and I don't see any other useful FindPython[1] variables. IMHO, Python_SITELIB is still the best choice, unless there's some other way to install Python modules in cmake that doesn't involve these variables.

I'm going to ask the debian-python list for help, perhaps they know more about the correct paths to use. In the meantime, I do think this issue should block cmake 3.27 migration until we've sorted it out, so the bug should be reassigned to cmake.


[1] https://cmake.org/cmake/help/latest/module/FindPython.html

Reply via email to