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

Why doesn't rospack list runtime dependencies?

asked 2019-09-21 21:38:14 -0500

nbro gravatar image

updated 2019-09-22 07:20:17 -0500

I have the following dependencies specified in the package.xml file

<buildtool_depend>catkin</buildtool_depend>

<build_depend>message_filters</build_depend>
<build_depend>rosbag</build_depend>
<build_depend>rospy</build_depend>
<build_depend>tf</build_depend>

<build_export_depend>message_filters</build_export_depend>
<build_export_depend>rosbag</build_export_depend>
<build_export_depend>rospy</build_export_depend>
<build_export_depend>tf</build_export_depend>

<exec_depend>message_filters</exec_depend>
<exec_depend>rosbag</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>tf</exec_depend>

<exec_depend>python-h5py</exec_depend>
<exec_depend>python-opencv</exec_depend>
<exec_depend>python-pandas</exec_depend>
<exec_depend>python-tqdm</exec_depend>

Then I issue catkin build inside my workspace. I also do rosdep install my_package. However, when I do rospack depends1 my_package, I only see message_filters, rosbag, rospy and tf. Why is that the case?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2019-09-22 05:16:23 -0500

gvdhoorn gravatar image

updated 2019-09-22 05:16:45 -0500

Why doesn't rospack list runtime dependencies?

it does, but rospack only lists dependencies of your package that are ROS packages.

That's why you "only see message_filters, rosbag, rospy and tf" when you ran rospack depends1 my_package.

If you want to list system dependencies -- which your python-* keys are -- you'd need to run rosdep.

rospack does have a proxy for that, so you should get the output you are looking for by running:

rospack rosdep my_package

For roscpp, we get:

user@machine:/# rospack rosdep roscpp
name: apr
name: boost
name: cmake
name: google-mock
name: gtest
name: libconsole-bridge-dev
name: log4cxx
name: pkg-config
name: python-argparse
name: python-catkin-pkg
name: python-empy
name: python-mock
name: python-nose
name: python-yaml

while we get a different list with just rospack depends:

cpp_common
message_runtime
rosconsole
roscpp_serialization
roscpp_traits
rosgraph_msgs
rostime
std_msgs
xmlrpcpp

which are the ROS packages that roscpp depends on.

Please, do not tell me that I need to do pip install pandas, when there is this mentioned article http://docs.ros.org/lunar/api/catkin/...!

Using pip is never something anyone should recommend, especially not on platforms with a proper package manager.

edit flag offensive delete link more

Comments

You did not answer my question about not being able to import pandas, even if I did rosdep install my_package.

nbro gravatar image nbro  ( 2019-09-22 06:49:08 -0500 )edit
1

The question title is:

Why doesn't rospack list runtime dependencies?

I explained what you observed.

gvdhoorn gravatar image gvdhoorn  ( 2019-09-22 07:09:58 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2019-09-21 21:38:14 -0500

Seen: 138 times

Last updated: Sep 22 '19