2

在我的 CMake 中,我有:

find_package(PythonInterp 3.6 REQUIRED)

当我执行 cmake 时,这很好用,因为我在 /opt/local/bin 中有 python3.6。但是,当 CLion 执行相同的 cmake 时,却找不到它。我怎样才能让它知道?

我尝试将 /opt/local/bin 添加到 PATH 并添加一个 python 解释器设置,但是下一个工作。

4

3 回答 3

4

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

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

于 2019-05-23T08:14:40.390 回答
1

要尝试的一件事是临时设置CMAKE_PREFIX_PATHpython/usr/local在某些平台中的安装位置(发生在 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})
于 2018-11-20T17:48:05.123 回答
0

我能够弄清楚。可以将 env 变量添加到 cmake 执行中:env在此处查找https://cmake.org/cmake/help/latest/manual/cmake.1.html

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

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

于 2018-04-21T02:17:43.360 回答