mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-22 05:05:11 +00:00
Check if module file extension could be queried correctly (#2538)
On very incomplete python installations (e.g. within Docker), it's possible that distutils is not installed. In that case, the ``execute_command`` statement that queries distutils for the Python module extension fails, and pybind11 uses the empty string. This commit adds an extra check that causes a CMake failure with more actionable information (just spent a lot of time trying to track down this problem :))
This commit is contained in:
parent
01ad89209a
commit
3232e59b83
@ -91,7 +91,13 @@ execute_process(
|
||||
COMMAND "${${_Python}_EXECUTABLE}" "-c"
|
||||
"from distutils import sysconfig; print(sysconfig.get_config_var('SO'))"
|
||||
OUTPUT_VARIABLE _PYTHON_MODULE_EXTENSION
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
ERROR_VARIABLE _PYTHON_MODULE_EXTENSION_ERR
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if (_PYTHON_MODULE_EXTENSION STREQUAL "")
|
||||
message(FATAL_ERROR "pybind11 could not query the module file extension, likely the 'distutils'"
|
||||
"package is not installed. Full error message:\n${_PYTHON_MODULE_EXTENSION_ERR}")
|
||||
endif()
|
||||
|
||||
# This needs to be available for the pybind11_extension function
|
||||
set(PYTHON_MODULE_EXTENSION
|
||||
|
Loading…
Reference in New Issue
Block a user