[ros-users] Ros version checking in python scripting

Ken Conley kwc at willowgarage.com
Wed Feb 2 00:05:10 UTC 2011

On Tue, Feb 1, 2011 at 3:58 PM, Steven Bellens
<steven.bellens at mech.kuleuven.be> wrote:
> 2011/2/2 Ken Conley <kwc at willowgarage.com>:
>> Hi Steven,
>> There's no fast way to check the version from a Python script -- you
>> can shell to bin/rosversion (or re-use its code, as it is Python).
>> However, there are two alternatives that achieve your goal:
>> 1) (recommended)
>> from rospy import Header
>> 2) The Pythonic way of doing multi-version compatibility:
>> try:
>>    from std_msgs.msg import Header
>> except ImportError:
>>    from roslib.msg import Header
> That's not really what we need. The python script involved is used to
> generate C++ typekit code. It used to have one line writing out a
> '#include <roslib/Header.h>'. This now needs replacing with the
> std_msg header depending on the ROS version. So, either way, the
> python code itself will never complain about it.

Then I recommend using the bin/rosversion solution.  The
std_msgs/Header is part of ROS 1.3.1+ (unstable), though realistically
you only need to check ROS 1.4+ as the stable version.

 - Ken

More information about the ros-users mailing list