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