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

8
每当我尝试创建一个工作区时:
~/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出了问题,但我找不到解决方案。

7个回答

13

我刚在Ubuntu 16.04上安装了ROS,遇到了相同的问题,并成功解决。根据错误输出信息:

确保你已经安装了"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

保存文件并运行source以更新您的会话:

~/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


4

您是否正在使用Anaconda环境?

这个问题在Anaconda的Python安装中很常见。

请尝试:python --version

如果你看到输出中有Anaconda,去你的bashrc文件中找到vi ~/.bashrc,然后注释掉添加anaconda到path路径的那行。它应该类似于:

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

然后使用source ~/.bashrc命令激活bashrc文件,打开一个新终端并进入你的catkin工作空间。删除旧的build文件夹,再次尝试catkin_make命令。

这样就可以解决您的问题。


ROS何时才能与Conda兼容,这太可笑了! - eric
1
@neuronet 我感同身受 :) - Vatsal Srivastava

3
错误输出:

ImportError: "from catkin_pkg.package import parse_package" 失败: 没有名为 'catkin_pkg' 的模块 请确保你已经安装"catkin_pkg", 并且它在PYTHONPATH中且是最新版本。

如上所述,你需要将"catkin_pkg"加入到PYTHONPATH中。如果问我,最简单的方法是: $ pip install catkin_pkg

2

尝试执行以下命令:pip install -U rosdep rosinstall_generator wstool rosinstall six vcstools

如果pip出现错误,请切换到root用户并安装pip然后重试。


0

这意味着您尚未将ROS引入您的环境。

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

source /opt/ros/kinetic/setup.bash

保存.bashrc文件,关闭当前终端,并在新终端中启动您的进程。


0

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

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

注释后,进入catkin_ws文件夹,删除文件夹中的现有文件夹,并创建新的src文件夹。然后按照以下三个步骤进行:

1- $ mkdir src

2- $ catkin_init_workspace src

3- $ catkin_make

这对我有效。


0

对我来说,它已经被修复了

sudo apt-get remove python3-catkin-tools
sudo apt-get install python-catkin-tools

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接