尝试在 ROS 中创建 catkin 工作区时出现 CMake 错误,因为它找不到 PythonInterp

Posted

技术标签:

【中文标题】尝试在 ROS 中创建 catkin 工作区时出现 CMake 错误,因为它找不到 PythonInterp【英文标题】:Getting a CMake Error trying to create a catkin workspace in ROS, because it could not find the PythonInterp 【发布时间】:2019-12-04 02:41:08 【问题描述】:

我在尝试在 ROS 中创建 catkin 工作区时遇到 CMake 错误,因为它找不到 PythonInterp。它发现了一个不合适的版本“1.4”,但它至少需要有2个。但是,我已经为ros下载了更高版本的python。

这是我运行 catkin_make 时得到的结果

nasa@nasa-VirtualBox:~/catkin_ws$ catkin_make
Base path: /home/nasa/catkin_ws
Source space: /home/nasa/catkin_ws/src
Build space: /home/nasa/catkin_ws/build
Devel space: /home/nasa/catkin_ws/devel
Install space: /home/nasa/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/nasa/catkin_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/nasa/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/melodic
-- This workspace overlays: /opt/ros/melodic
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PythonInterp: Found unsuitable version "1.4", but required
  is at least "2" (found /home/nasa/catkin_ws/build/python3)
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:376 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.10/Modules/FindPythonInterp.cmake:152 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /opt/ros/melodic/share/catkin/cmake/python.cmake:4 (find_package)
  /opt/ros/melodic/share/catkin/cmake/all.cmake:163 (include)
  /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:56 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/nasa/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/nasa/catkin_ws/build/CMakeFiles/CMakeError.log".
Makefile:320: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed

【问题讨论】:

【参考方案1】:

解决方案可能是清理您的工作区。正如the first link in google after searching for the error 所暗示的那样,问题出在 CMakeCache.txt 上。根据您使用的是catkin build 还是catkin_make,您可以在catkin 工作区中运行catkin cleancatkin_make clean。只需删除工作区中的 devel 和 build 文件夹也应该适用于任何一个构建系统。

您还可以在 https://answers.ros.org/questions/ 上获得有关 ROS 相关问题的更快答案

如果清理工作区不能解决问题,请检查终端python --version 报告的python 版本。此外,如果您安装了新版本的 python 并从同一个终端尝试构建工作区,那么相关的环境路径可能尚未在该 shell 中更新。运行exec bash 或启动一个新终端并尝试构建您的工作区。

【讨论】:

【参考方案2】:

使用命令$python -V查看python的版本。

如果版本是 2.7,那么:

    转到 catkin_ws 删除文件夹 devel 并重新构建 在工作区中打开另一个终端,然后重试。

【讨论】:

以上是关于尝试在 ROS 中创建 catkin 工作区时出现 CMake 错误,因为它找不到 PythonInterp的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 10 的 ROS 中使用 catkin_make 时出现问题

在 ROS 工作空间中使用 catkin_make 时 Qt 出现的问题

ROS学习--第3篇:ROS基础---创建工作空间

ROS学习--第3篇:ROS基础---创建工作空间和软件包

错误 C2059:尝试在已知大小的头文件中创建 Qt 容器时出现“常量”

尝试在 Visual Studio 2010 中创建的 Expression-Blend 4 中打开 WPF 项目时出现问题