.. _python_module_dependencies_1: Python module dependencies -------------------------- When your Python package imports other python modules, ``package.xml`` should provide a ```` with the appropriate package name. For system dependencies, like ``python-numpy`` or ``python-yaml``, use the corresponding rosdep name:: python-numpy python-yaml These names are usually already defined in the `rosdistro repository`_. If you need a module not yet defined there, please `fork that repository and add them`_. Several ROS infrastructure modules, like ``python-rospkg`` or ``python-rosdep`` itself, apply to multiple ROS releases and are released independently of them. Resolve those module dependencies like other system packages, using the rosdep name:: python-rosdep python-rospkg When you import from another ROS Python package, like ``rospy`` or ``roslaunch``, always use the catkin package name:: roslaunch rospy ROS message or service definitions are similarly defined as modules by ROS packages like std_msgs_ and sensor_msgs_, used as examples here. For them, use both ```` and ```` tags with the ROS package name:: std_msgs std_msgs sensor_msgs sensor_msgs Your ``CMakeLists.txt`` need not specify Python-only dependencies. They are resolved automatically via ``sys.path``. .. _`fork that repository and add them`: http://ros.org/doc/independent/api/rosdep/html/contributing_rules.html .. _`rosdistro repository`: https://github.com/ros/rosdistro/blob/master/rosdep/python.yaml .. _sensor_msgs: http://www.ros.org/wiki/sensor_msgs .. _std_msgs: http://www.ros.org/wiki/std_msgs