ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Jenkins doc job error: rosdep thriftpy

asked 2020-11-24 07:20:19 -0600

rluque gravatar image

I have this error in the Jenkins doc job of my package: http://build.ros.org/view/Mdoc/job/Md...

04:09:39 /tmp/ws/src/z_laser_projector/doc/zlp_core.rst:4: WARNING: autodoc: failed to import module u'zlp_core'; the following exception was raised:
04:09:39 Traceback (most recent call last):
04:09:39   File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 658, in import_object
04:09:39     __import__(self.modname)
04:09:39   File "/tmp/ws/src/z_laser_projector/src/z_laser_projector/zlp_core.py", line 29, in <module>
04:09:39     import thriftpy
04:09:39 ImportError: No module named thriftpy

I'm trying to solve it including dependencies in my package.xml:

  <build_depend>python3-thriftpy</build_depend>
  <build_export_depend>python3-thriftpy</build_export_depend>
  <exec_depend>python3-thriftpy</exec_depend>

However, when I try to build the package at Travis-CI (in private before try in Jenkins), it throws this error:

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
z_laser_projector: Cannot locate rosdep definition for [python3-thriftpy]
The command "rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO" failed and exited with 1 during .

How could I include this dependency in order to fix the Jenkins job? Am I taking the right way to solve the error?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-11-24 17:14:58 -0600

nuclearsandwich gravatar image

Package.xml dependencies are resolved with rosdep. In order to be resolvable with the default sources, rosdep definitions need to be added. You can read about contributing those here: https://github.com/ros/rosdistro/blob...

edit flag offensive delete link more

Comments

Just to add to this: package.xml does not use the name of a Python package or the name of a Debian version of that Python package directly.

All names in package manifests are actually keys, which get looked up in a database (called the rosdep DB). The result of that mapping is then used to check for presence of and to install a package.

So if python3-thriftpy is not already registered in the rosdep DB, you can add the name to your manifest, but that won't help. rosdep will still not be able to "understand" it. That's what

Cannot locate rosdep definition for [python3-thriftpy]

means.

This may seem rather convoluted, but there are good reasons for this system. See #q215059 for a Q&A which discusses this.

gvdhoorn gravatar image gvdhoorn  ( 2020-11-25 03:14:04 -0600 )edit

Thank you very much for your help! I asked for adding python3-thriftpy depend at rosdep. See here: https://github.com/ros/rosdistro/pull...

rluque gravatar image rluque  ( 2020-12-22 06:47:29 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2020-11-24 07:20:19 -0600

Seen: 138 times

Last updated: Nov 24 '20