CMake FindPython hints
CMake Find modules are by their nature a little aggressive about finding libraries and executables.
This becomes a factor on Windows in particular when Anaconda Python is not active in the current Terminal.
CMake find_package(Python)
by default prefers Anaconda Python over system Python unless overridden as below.
Anaconda Python won’t operate correctly without conda activate
, which presumably the user has either forgotten to do or doesn’t desire at the moment.
To decrease the aggressiveness and find Windows Store Python etc. when conda isn’t activated on Windows, add to the project CMakeLists.txt before
find_package(Python):
set(Python_FIND_REGISTRY LAST)
# this avoids non-active conda from getting picked anyway on Windows
set(Python_FIND_VIRTUALENV STANDARD)
# Use environment variable PATH to decide preference for Python
find_package(Python)