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