[omniORB] ImportError: libomniORB3.so.0: cannot open shared object file: No such file or directory

dek_ml@konerding.com dek_ml@konerding.com
Mon, 05 Feb 2001 07:41:48 -0800


Duncan Grisby writes:
>On Sunday 4 February, aboufer@atlsci.com wrote:
>
>> As the subject of this message states, I am getting an error
>> whenever libomniORB3 is imported. Python seems not be able to find
>> the correct shared library although (I have checked) they do exist
>> as logical links to the latest version of the library:
>> 
>>     libomniORB3.so --> libomniORB3.so.0
>>     libomniORB3.so.0 --> libomniORB.so.0.2
>
>The problem is probably that libomniORB3.so is not on your
>LD_LIBRARY_PATH (or somewhere else searched by ld.so). The confusing
>thing is that _omnipymodule.so is found on PYTHONPATH, but
>libomniORB3.so is found by the normal run-time linker. That means
>Python can find one but not the other, despite the fact that they are
>in the same place.

This isn't a problem on systems like Tru64 (the runtime linker explicitly
checks the same directory.  Or, if you compile with an rpath that
resolves to the correct final install location (tricky- you rarely know
the correct final install location of a target user's machine).

Python doesn't find it because before it dlopens() the .so file, it finds
the .so in python path then passes the whole path to the .so to dlopen().

You can see the man pages for ld.so and dlopen for more info.