[ros-users] Python node design.

Ken Conley kwc at willowgarage.com
Tue Nov 2 16:31:02 UTC 2010


Hi Renato,

I'm not sure I understand the problem, but have you tried:

a) Sticking the .so files in the 'lib' directory of your package
b) If (a) is not possible, setting the <export> for Python in your
manifest to point to the relevant location:

http://www.ros.org/wiki/Manifest/XML#export:_.3Cpython.3E_tag

You could also look at the opencv2 package and see how it exports the
Python bindings correctly (note: it had a bug, so you should check the
most recent release).

 - Ken

2010/11/2 Renato Samperio <mintaka_alnitak at hotmail.com>:
> Dar ROS users,
>
> I would like to know if somebody could have a hint for our problem. This
> question is for system design in python.
>
> We require of a ROS package holding a library for our system that has
> relevant python wrappers (pyopencv) used in our system.
>
> So far, we have encapsulated all required libraries (*.so) and python files
> (*.py) into a node structure which can be used by pointing it to the
> LD_LIBRARY_PATH. However, if we want to run our system as a ROS node, we
> also require to update this system variable.
>
> The 'manifest.xml' file for our ROS library (pyopencv) is:
>
> <package>
>
> <description brief="pyopencv"> pyopencv </description>
>
> <author>Renato Samperio</author>
>
> <license>BSD</license>
>
> <review status="unreviewed" notes=""/>
>
> <url>http://ros.org/wiki/pyopencv</url>
>
> <depend package="rospy"/>
>
> <depend package="sensor_msgs"/>
>
> <export>
>
> <cpp lflags="-Wl,-rpath,${prefix}/lib -L${prefix}/lib -lpyopencv_extras
> -lboost_python -lcvaux -lcv_h_ext -lcv_hpp_ext -lcxcore_h_ext
> -lcxcore_hpp_ext -lcxcore_hpp_point_ext -lcxcore_hpp_vec_ext -lcxtypes_h_ext
> -lhighgui_ext -lcvaux -lcv -lcxcore -lhighgui -lml -lml_ext -lsdopencv_ext"
> />
>
> </export>
>
> </package>
>
> We made our node following rules from PyStyleGuide. Our file system
> structure is:
>
> pyopencv
>
> |- CMakeLists.txt
>
> |- manifest.xml
>
> |- mainpage.dox
>
> |- src/
>
> |- pyopencv/ ← Pointed to LD_LIBRARY_PATH
>
> |- __init__.py
>
> |- *.so, *.py, *.pyc
>
> I would really appreciate if somebody has an idea of how we could avoid the
> LD_LIBRARY_PATH system variable.
>
> With best wishes,
>
> Renato Samperio
>
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>
>



More information about the ros-users mailing list