osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How to force the path of a lib ?


Le 23/01/19 ? 13:11, Neal Becker a ?crit?:
> dieter wrote:
>
>> Vincent Vande Vyvre <vincent.vande.vyvre at telenet.be> writes:
>> .....


>> To load external C/C++ shared objects, the dynamic lickage loader
>> (ldd) is used. "ldd" does not look at Pthon's "sys.path".
>> Unless configured differently, it looks at standard places
>> (such as "/usr/lib/x86_64-linux-gnu").
>>
>> You have several options to tell "ldd" where to look for
>> shared objects:
>>
>>   * use the envvar "LD_LIBRARY_PATH"
>>     This is a "path variable" similar to the shell's "PATH",
>>     telling the dynamic loader in which directories (before
>>     the standard ones) to look for shared objects
>>
>>   * use special linker options (when you link your Python
>>     extension shared object) to tell where dependent shared
>>     object can be found.
>>
> To follow up on that last point, look up --rpath and related.
>
Trying the first solution with "export 
LD_LIBRARY_PATH=/home/vincent/CPython/py370_venv/lib" has no effect.

The second solution is better, after looking de doc of 
distutils.core.Extension I've added this line into my setup.py
 ??? Extension('libexiv2python',
 ??????? ...,
runtime_library_dirs=['/home/vincent/CPython/py370_venv/lib/'],
 ??????? ...

rebuild, install and test
Type "help", "copyright", "credits" or "license" for more information.
 >>> import pyexiv2
 >>>

Great!

Many thanks,
Vincent