On Dec 8, 2007, at 1:15 , Asheesh Laroia wrote: > I'd like to bundle a Python C extension and use it from my > activity. This > requires Python to dlopen() a shared library whose path can change > depending on where the activity is installed, but also whose path is > different than on my desktop where I built the .xo. > > Initially I tried to set os['LD_LIBRARY_PATH'] from within Python, > but I > learned this would not affect the running application > <http://hathawaymix.org/Weblog/2004-12-30>. > > In the Log Viewer, I read: > > <type 'exceptions.ImportError'>: liblicense.so.0: cannot open shared > object file: No such file or directory > > I tried changing my activity.info to read, in part (all on one line): > > exec = LD_LIBRARY_PATH=/home/olpc/Activities/License.activity/built/ > lib > sugar-activity ccactivity.LicensingActivity -s > > but the error persisted. > > I know this is a sort of strange thing to do, but what's a > reasonable way > to do it? Thanks, as always!
Not strange at all. I argued before that Sugar should in fact set LD_LIBRARY_PATH before executing an activity: http://lists.laptop.org/pipermail/sugar/2007-November/003883.html But that would not help you for already shipped versions of Sugar. What should work is that you run a simple script in the exec line. Put that in bin/ of your bundle: #!/bin/sh export LD_LIBRARY_PATH="$SUGAR_BUNDLE_PATH/lib" exec sugar-activity ... - Bert - _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel