CMake检测到错误Python版本(1.4),如何修复该报错?
解决CMake识别Python版本错误的问题
看起来CMake的FindPythonInterp模块在版本检测时出了点小问题——明明你系统里有正常的Python 3.6.5,它却误报成了1.4版本。下面是几个能快速解决这个问题的方法:
方法一:手动指定Python解释器路径
在运行CMake时,直接通过参数明确指定Python 3的路径,强制CMake使用正确的版本:
cmake -DPYTHON_EXECUTABLE=/usr/local/bin/python3 ..
这个命令会跳过CMake自动检测的逻辑,直接让它使用你指定的python3解释器,应该能立刻解决版本识别错误的问题。
方法二:清理CMake缓存重新检测
有时候CMake会缓存之前错误的检测结果,导致一直沿用错误信息。你可以删除构建目录下的缓存文件,让CMake重新检测:
- 进入你的构建目录(比如
build文件夹) - 删除缓存文件和相关目录:
rm CMakeCache.txt rm -rf CMakeFiles
- 重新运行CMake,这次它会重新扫描系统中的Python版本:
cmake ..
方法三:通过环境变量引导CMake优先找到Python 3
在运行CMake前,把Python 3所在的目录放到PATH环境变量最前面,让CMake优先找到正确的版本:
export PATH=/usr/local/bin:$PATH cmake ..
这样CMake在查找Python解释器时,会先找到/usr/local/bin下的python3,避免被其他可能干扰的版本影响。
额外排查点
如果上面的方法都没生效,可以先确认/usr/local/bin/python3确实是你预期的版本:
/usr/local/bin/python3 --version
如果输出确实是3.6.5,那大概率是你使用的CMake 3.11.0版本里的FindPythonInterp模块存在小bug,这时候方法一的手动指定路径就是最可靠的解决方案。
内容的提问来源于stack exchange,提问作者Georg Heiler




