为什么当我尝试在 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 有问题,但我没有找到解决方案

原文由 rachuism 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

我刚刚在 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 的输出。

干杯,某人

原文由 stephenb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题