当我尝试在ROS中创建工作区时为什么会出现此错误?

时间:2017-03-26 02:33:43

标签: python linux ubuntu ros

每当我尝试创建工作区时:

~/catkin_ws$ catkin_make

它显示如下:

ImportError: "from catkin_pkg.package import parse_package" failed: No module named 'catkin_pkg'
Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/safe_execute_process.cmake:11 (message):
  execute_process(/home/usuario/miniconda3/bin/python
  "/opt/ros/kinetic/share/catkin/cmake/parse_package_xml.py"
  "/opt/ros/kinetic/share/catkin/cmake/../package.xml"
  "/home/usuario/catkin_ws/build/catkin/catkin_generated/version/package.cmake")
  returned error code 1
Call Stack (most recent call first):
  /opt/ros/kinetic/share/catkin/cmake/catkin_package_xml.cmake:63 (safe_execute_process)
  /opt/ros/kinetic/share/catkin/cmake/all.cmake:151 (_catkin_package_xml)
  /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:52 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/usuario/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/usuario/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

似乎catkin_pkg存在问题,但我找不到解决方案

6 个答案:

答案 0 :(得分:5)

我刚刚在Ubuntu 16.04上安装了ROS,遇到了同样的问题并修复了它。 catkin_pkg的位置可能不在您的PYTHONPATH上,需要添加。

从错误输出:

  

确保您已安装" catkin_pkg",它是最新的并且在PYTHONPATH上。

尝试找到catkin_pkg并检查您的PYTHONPATH。 catkin_pkg不在我的PYTHONPATH上(可能是由于其他程序安装),所以我添加了它并再次运行catkin_make,这次成功。

~/catkin_ws$ locate catkin_pkg
/usr/lib/python2.7/dist-packages/catkin_pkg

~/catkin_ws$ echo $PYTHONPATH
/opt/ros/kinetic/lib/python2.7/dist-packages

将catkin_pkg目录附加到PYTHONPATH(对于此会话):

~/catkin_ws$ export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages

为了永久性,我将catkin_pkg目录附加到我的.bashrc中的PYTHONPATH(你可能想先备份你的.bashrc文件,例如cp -p~ / .bashrc~ / .bashrc-ros-catkin.bak)。

要执行此操作,请编辑〜/ .bashrc文件(您可能需要使用sudo编辑此文件)并将以下两行添加到文件末尾:

# manually added for ROS catkin_make workspace setup
export PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages

保存文件并运行源代码以更新会话:

~/catkin_ws$ source ~/.bashrc

再次检查您的PYTHONPATH:

~/catkin_ws$ echo $PYTHONPATH
/opt/ros/kinetic/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages

显然,catkin_pkg文件的位置可能与我的不同,因此在追加上面的$ PYTHONPATH时请使用该路径。

现在再次尝试运行catkin_make。如果您收到相同的错误,请在此处粘贴catkin_pkg位置和PYTHONPATH的输出。

干杯, SB

答案 1 :(得分:4)

您使用的是Anaconda环境吗? 这个问题在Anaconda的Python安装中很常见。

尝试:python --version

如果在输出中看到Anaconda,请转到带有vi ~/.bashrc的bashrc文件,然后注释将anaconda添加到路径的行。 这就像是,

export PATH="username/anaconda2/bin:$PATH"

之后使用source ~/.bashrc来源bashrc,打开一个新终端并导航到您的catkin工作区。删除旧的构建文件夹并再次尝试catkin_make命令。

应解决您的问题。

答案 2 :(得分:1)

try this : pip install -U rosdep rosinstall_generator wstool rosinstall six vcstools

if pip shows any errror, switch to root and install pip and then try

答案 3 :(得分:0)

错误输出:

  

ImportError:"来自catkin_pkg.package import parse_package"失败:没有名为' catkin_pkg'   确保你已经安装了" catkin_pkg",它是最新的和PYTHONPATH。

如上所述,你需要" catkin_pkg"在PYTHONPATH。如果你问我,最简单的方法是:

$ pip install catkin_pkg

答案 4 :(得分:0)

实际上,当您想同时使用Anaconda和ROS时,通常会出现此错误。因此,首先进入.bashrc文件并注释anaconda的路径。

导出PATH="/home/gaurav/anaconda3/bin:$PATH"

评论后,进入catkin_ws文件夹并删除该文件夹中的现有文件夹,并新建一个src文件夹。 然后执行三个步骤:

1-$ mkdir src

2-{{​​1}}

3-$ catkin_init_workspace src

对我有用。

答案 5 :(得分:0)

这意味着您尚未将ROS采购到您的环境中。

将此行添加到.bashrc文件的最后一行

source /opt/ros/kinetic/setup.bash

保存.bashrc文件,关闭当前终端,然后在新终端中启动过程。