【问题标题】:CMake can't find python3CMake找不到python3
【发布时间】:2018-04-18 21:04:46
【问题描述】:

在我的 CMake 中,我有:

find_package(PythonInterp 3.6 REQUIRED)

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

我尝试将 /opt/local/bin 添加到 PATH 并添加一个 python 解释器设置,但 ner 可以解决这个问题。

【问题讨论】:

    标签: path clion pythoninterpreter


    【解决方案1】:

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

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

    【讨论】:

    • 是的,这也为我解决了,-DPython3_EXECUTABLE=$(which python3)
    【解决方案2】:

    要尝试的一件事是暂时将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})
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】: