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 ..
在我的 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 ..