Le 23/01/19 à 13:11, Neal Becker a écrit :
dieter wrote:

Vincent Vande Vyvre <vincent.vande.vy...@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

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to