GNU bug report logs - #30229
Python modules installed by pip in virtualenv can't find shared objects.

Previous Next

Package: guix;

Reported by: Fis Trivial <ybbs.daans <at> hotmail.com>

Date: Tue, 23 Jan 2018 11:51:01 UTC

Severity: normal

Done: zimoun <zimon.toutoune <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ricardo Wurmus <rekado <at> elephly.net>
To: Fis Trivial <ybbs.daans <at> hotmail.com>
Cc: 30229 <at> debbugs.gnu.org
Subject: bug#30229: Python modules installed by pip in virtualenv can't find shared objects.
Date: Tue, 23 Jan 2018 13:00:24 +0100
Hi,

> When a python module needs to load a dynamic shared object, it looks in the
> path provided by *LD_LIBRARY_PATH*(1), but guix doesn't modify this environment
> variable to export the needed path for python.

We cannot set this environment variable by default lest we break other
packages that may be installed.  LD_LIBRARY_PATH is dangerous as it
tells the runtime linker to prefer libraries in the specified
directories.

For Guix packages we use different means to embed store paths in
binaries, which are looked up at runtime.  For binaries that’s achieved
with RUNPATH; for others we patch the sources to ensure that libraries
are not looked up merely by name but by absolute path.

In your particular case (installing packages without Guix) I think the
best way is to manually set LD_LIBRARY_PATH on demand, or to set
LD_PRELOAD to the specific libraries that are required.

In general, though, I recommend using Guix for package management and
development instead of virtualenv and pip.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net






This bug report was last modified 3 years and 190 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.