繁体   English   中英

cmake Python:无法使用解释器

[英]cmake Python: Cannot use the interpreter

我正在使用 cmake 的find_package来定位 Python3,如下所示:

find_package(Python3 REQUIRED COMPONENTS Interpreter)

这在我的本地系统上有效,但在我们的 CI 上它在某些运行中失败(一次是 Linux,一次是带有 MXE 的 Linux)它会出错

Could NOT find Python3 (missing: Python3_EXECUTABLE Interpreter)

Reason given by package: 

    Interpreter: Cannot use the interpreter "/opt/pyenv/shims/python3.8"

在相同的系统上,如果我直接使用python3来调用我的脚本,它就可以工作。 因此我可以肯定地说他们确实有一个可以工作的 Python 环境。

我想知道find_package执行了什么样的检查,导致它相信解释器没有工作。 最重要的是:如何禁用这些检查?


注意:我不能简单地依赖 Python 在 PATH 中,因为这个假设在我们的 Windows CI 上被破坏了,其中find_package方法工作正常。

注2:我使用的是最新的 cmake 版本(来自 Kitware 的 PPA)

虽然我仍然不知道为什么find_package发出这个特定的错误,但我能够通过使用定位 Python 解释器的自编写函数来规避它,并且通过这样做它更喜欢在 PATH 或其他标准目录中找到的可执行文件。

该脚本位于https://github.com/Krzmbrzl/FindPythonInterpreter (包括使用说明)。

简而言之,这允许我使用以下代码段来查找 Python 3 解释器:

find_python_interpreter(
    VERSION 3
    INTERPRETER_OUT_VAR PYTHON_INTERPRETER
    REQUIRED
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM