CMake 找不到 python3

CMake can't find python3

在我的 CMake 中我有:

find_package(PythonInterp 3.6 REQUIRED)

这在我执行 cmake 时工作正常,因为我在 /opt/local/bin 中有 python3.6。但是,当 CLion 执行相同的 cmake 时,它​​无法找到它。我怎样才能让它知道?

我尝试将 /opt/local/bin 添加到 PATH 并添加一个 python 解释器设置,但没有成功。

我想通了。可以将环境变量添加到 cmake 执行中:在此处查找 env https://cmake.org/cmake/help/latest/manual/cmake.1.html

知道这一点很容易将其添加到 clion 中:Settings/Preferences -> 构建、执行、部署 -> CMake -> CMake 选项

并添加到该字段 env PATH=${PATH}:/opt/local/bin

可以尝试的一件事是暂时将 CMAKE_PREFIX_PATH 设置为 /usr/local,其中 python 安装在某些平台上(发生在 macOS 中)。

+            set(CMAKE_PREFIX_PATH_bak ${CMAKE_PREFIX_PATH})
+            set(CMAKE_PREFIX_PATH "/usr/local")
             find_package(PythonInterp)
+            set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH_bak})

我通过向 cmake 添加一个额外的参数解决了这个问题:Python3_EXECUTABLE

cmake -DPython3_EXECUTABLE=/path/to/bin/python3 ..