guix-devel
[Top][All Lists]
Advanced

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

(python) ctypes.util.find_library full path ?


From: zimoun
Subject: (python) ctypes.util.find_library full path ?
Date: Fri, 22 Feb 2019 15:51:17 +0100

Dear,

I would like to try WeasyPrint [1] to convert some HTML docs to PDF
ones and maybe print them. Or maybe presentation etc.

[1] https://weasyprint.org/

Well, excluding the check phase at first because some dependencies
does not seem clean with Python2/Python3. Anyway!

it is almost straightforward with `guix import pypi -r weasyprint'. Awesome !
(there is some tweaks in url: "cairosvg" -> "CairoSVG")

However, the command `weasyprint` fails at run time. Because an issue
about `dlopen'.

To be precise, and from my understanding, the culprit is these lines:
https://github.com/Kozea/cairocffi/blob/v1.0.2/cairocffi/__init__.py#L30-L31

In other word, ctypes.util.find_library('cairo') returns the expected
'libcairo.so.2'.
But then it is not recognized by their `ffi.dlopen`.
And if the full path is provided then it works, e.g.,
 
ffi.dlopen('/gnu/store/13i02w6r4awyb5d4n8plk8m0idvryib0-cairo-1.14.12/lib/libcairo.so.2')
 <Lib object for
'/gnu/store/13i02w6r4awyb5d4n8plk8m0idvryib0-cairo-1.14.12/lib/libcairo.so.2'>

There is an old "similar" issue on the bug Nix tracker #7307 [2],
asking if `ctypes.util.find_library` should return full path (so apply
somehow a patch) or add another env variable. I do not know what is
the status now.

[2] https://github.com/NixOS/nixpkgs/issues/7307


My questions is: is there a fix for this kind of issue ?
I guess, it should happen with Python packages.

If yes, what is the trick ?
If no, what should be the trick ? What do you think ?


Thank you for any pointer and/or comments.


All the best,
simon



reply via email to

[Prev in Thread] Current Thread [Next in Thread]