[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Python: Error loading shared library in Guix
From: |
Björn Höfling |
Subject: |
Python: Error loading shared library in Guix |
Date: |
Tue, 19 Mar 2019 15:25:19 +0100 |
I'm trying to package TaskCoach (https://www.taskcoach.org/) and
stumble upon a problem when running it: It cannot load a shared library
with ctypes. Here is the stacktrace:
File
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/application/application.py",
line 226, in init
self.settings, splash=splash)
File
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/gui/mainwindow.py",
line 92, in __init__
self.taskFile.efforts())
File
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/gui/idlecontroller.py",
line 84, in __init__
super(IdleController, self).__init__()
File
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/patterns/observer.py",
line 333, in __init__
super(Observer, self).__init__(*args, **kwargs)
File
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/powermgt/idle.py",
line 111, in __init__
IdleQuery.__init__(self)
File
"/gnu/store/xnigri1g96wl0n14d9bfjyn7jnkn0f6c-taskcoach-1.4.4/lib/python2.7/site-packages/taskcoachlib/powermgt/idle.py",
line 46, in __init__
_xss = CDLL('libXss.so.1')
File
"/gnu/store/aws3fsg614lqr392y5pp9w65dy7gmvlx-python2-2.7.15/lib/python2.7/ctypes/__init__.py",
line 366, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libXss.so.1: cannot open shared object file: No such file or directory
I had no glue at all what's going on, so I read a bit in the Python
manual and tried to reproduce this in a container:
https://docs.python.org/3/library/ctypes.html
$ guix environment -C --ad-hoc python2 coreutils binutils less which
libxscrnsaver zlib
[env]# ls $GUIX_ENVIRONMENT/lib
libXss.a libXss.so libXss.so.1.0.0 libbfd.la libopcodes.la
libpython2.7.so.1.0 libz.so.1 pkgconfig
libXss.la libXss.so.1 libbfd.a libopcodes.a libpython2.7.so libz.so
libz.so.1.2.11 python2.7
[env]# python
Python 2.7.15 (default, Jan 1 1970, 00:00:01)
[GCC 5.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes;
>>> from ctypes import *;
>>> libc=CDLL("libc.so.6");
>>> libc
<CDLL 'libc.so.6', handle 7fac69a4b550 at 7fac69733110>
>>> libz=CDLL("libz.so.1");
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/gnu/store/aws3fsg614lqr392y5pp9w65dy7gmvlx-python2-2.7.15/lib/python2.7/ctypes/__init__.py",
line 366, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libz.so.1: cannot open shared object file: No such file or directory
So, it can load "libc.so.6", but not "libz.so.1", which I found in my
environments lib folder.
What's wrong here? How can I load the library in Guix? Do I have to set
anything beforehand? I thought the environment would care for me. Do I
need to add anything to my package definition to fix that?
If that helps, I attached the first version of my package definition,
it's not nice, but builds and runs (until the above stacktrace appears).
Thanks,
Björn
0001-XXX-TaskCoach-First-stub.patch
Description: Text Data
pgpPREVRfwgQw.pgp
Description: OpenPGP digital signature
- Python: Error loading shared library in Guix,
Björn Höfling <=