Re: [Ros-release] Which is the correct genmsg_py.py?

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Ken Conley
Date:  
To: Jack O'Quin
CC: ros-release
Subject: Re: [Ros-release] Which is the correct genmsg_py.py?
On Tue, Feb 14, 2012 at 9:50 AM, Jack O'Quin <> wrote:
> I have several packages that I need to support on both Electric and
> Fuerte. This involves switching back and forth between those two
> distributions.


NOTE: when switching, it's best to use a brand new shell to ensure no
accidental environment cross over. The more dangerous is going from
Fuerte->Electric, because Fuerte makes many more libraries
path-accessible (e.g. Python).

> That works better now, but some things about message generation still
> confuse me.
>
>  * Is the pip installed genmsg-0.1.5 package for Fuerte only, or is it
> also a replacement for the Electric version?


Do not pip install genmsg. Only use the version that comes in the
Debian build. pip will install into your main PYTHONPATH, instead of
the sandboxed path. The debian build uses a prefix install of genmsg.

The new genmsg is for Fuerte only.

>
>  * Sometimes I stumble over message checksum incompatibilities when
> running a combination of source built code and binary installs. Are
> any of these genmsg_py.py versions likely to produce different
> checksums?


The general answer is no, in ROS Fuerte, the backwards-compatible
genmsg_py.py is merely a wrapper around the new genpy, so all
generation is does using the same lower-level code.

But, see below.

>
>  * It is tricky to get the "correct" $PATH set up for both distros.
> What is the recommended $PATH and genmsg_py.py version?


It looks to me like you may have pip installed genpy as well. That
needs to be removed. Unfortunately, pip uninstall does not remove
executable symlinks, so you need to remove /usr/local/bin/genmsg*

NOTE: Electric does not use PATH to find genmsg_* scripts, it looks
inside of the ROS package. Only Fuerte is affected by the extra pip
install.

- Ken

>
> ~$ locate genmsg_py.py
> /opt/ros/electric/stacks/ros_comm/clients/rospy/scripts/genmsg_py.py
> /opt/ros/electric/stacks/ros_comm/clients/rospy/scripts/genmsg_py.pyc
> /opt/ros/electric/stacks/ros_comm/clients/rospy/scripts/rosbuild2/genmsg_py.py
> /opt/ros/electric/stacks/ros_comm/clients/rospy/scripts/rosbuild2/genmsg_py.pyc
> /opt/ros/electric/stacks/ros_comm/test/test_rospy/test/test_genmsg_py.py
> /opt/ros/electric/stacks/ros_comm/test/test_rospy/test/test_genmsg_py.pyc
> /opt/ros/fuerte/bin/genmsg_py.py
> /opt/ros/fuerte/share/genpy/bin/genmsg_py.py
> /opt/ros/fuerte/share/rospy/rosbuild/scripts/genmsg_py.py
> /opt/ros/unstable/stacks/ros_comm/clients/rospy/scripts/genmsg_py.py
> /opt/ros/unstable/stacks/ros_comm/clients/rospy/scripts/genmsg_py.pyc
> /opt/ros/unstable/stacks/ros_comm/clients/rospy/scripts/rosbuild2/genmsg_py.py
> /opt/ros/unstable/stacks/ros_comm/clients/rospy/scripts/rosbuild2/genmsg_py.pyc
> /opt/ros/unstable/stacks/ros_comm/test/test_rospy/test/test_genmsg_py.py
> /opt/ros/unstable/stacks/ros_comm/test/test_rospy/test/test_genmsg_py.pyc
> /usr/local/bin/genmsg_py.py
>
> On Electric, I get this:
> $ echo $PATH
> /home/joq/ros/electric_art/utexas-art/stacks/art_vehicle/art_run/bin:/opt/ros/electric/ros/bin:/home/joq/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
> $ which genmsg_py.py
> /usr/local/bin/genmsg_py.py
>
> On Fuerte, I get this:
> $ echo $PATH
> /opt/ros/fuerte/share/ros/bin:/opt/ros/fuerte/bin:/home/joq/ros/fuerte_dev/utexas-art/stacks/art_vehicle/art_run/bin:/opt/ros/fuerte/share/ros/bin:/opt/ros/fuerte/bin:/home/joq/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
> $ which genmsg_py.py
> /opt/ros/fuerte/bin/genmsg_py.py
> --
>  joq
> _______________________________________________
> Ros-release mailing list
>
> https://code.ros.org/mailman/listinfo/ros-release