[英]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.