ctypes: loading .so file on Linux

Paddy paddy3118 at googlemail.com
Sat Aug 23 15:33:47 CEST 2008


Hi,
I am am falling at the first hurdle when trying to access a library
using ctypes.

I have a file libucdb.so which the file command says is shared object,
but I cannot get it to load:

Any help would be appreciated:

dmccarthy: file /opt/questasim_6.4/questasim/linux/libucdb.a /opt/
questasim_=
6.4/questasim/linux/libucdb.so
/opt/questasim_6.4/questasim/linux/libucdb.a:  current ar archive
/opt/questasim_6.4/questasim/linux/libucdb.so: ELF 32-bit LSB shared
object,=
 Intel 80386, version 1 (SYSV), not stripped
dmccarthy: python
ActivePython 2.5.1.1 (ActiveState Software Inc.) based on
Python 2.5.1 (r251:54863, May  2 2007, 08:46:07)
[GCC 3.3.4 (pre 3.3.5 20040809)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> cdll.LoadLibrary("libc.so.6")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'cdll' is not defined
>>> from ctypes import *
>>> ^[[A^[[A
    ^e "<stdin>", line 1
SyntaxError: invalid syntax
>>> cdll.LoadLibrary("libc.so.6")
<CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>
>>> cdll.LoadLibrary("libucdb.so")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/software/unix-soft/linux/ActivePython-2.5.1.1-linux-x86_64/
lib/pyth=
on2.5/ctypes/__init__.py", line 423, in LoadLibrary
    return self._dlltype(name)
  File "/software/unix-soft/linux/ActivePython-2.5.1.1-linux-x86_64/
lib/pyth=
on2.5/ctypes/__init__.py", line 340, in __init__
    self._handle =3D _dlopen(self._name, mode)
OSError: libucdb.so: cannot open shared object file: No such file or
directo=
ry
>>> cdll.LoadLibrary("libc.so.6")
<CDLL 'libc.so.6', handle 2a958a2900 at 2a95df3ad0>
>>> libc =3D CDLL("libc.so.6")
>>> libc
<CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>
>>> libc =3D CDLL("libucdb.so")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/software/unix-soft/linux/ActivePython-2.5.1.1-linux-x86_64/
lib/pyth=
on2.5/ctypes/__init__.py", line 340, in __init__
    self._handle =3D _dlopen(self._name, mode)
OSError: libucdb.so: cannot open shared object file: No such file or
directo=
ry
>>> libc =3D CDLL("/opt/questasim_6.4/questasim/linux/libucdb.so")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/software/unix-soft/linux/ActivePython-2.5.1.1-linux-x86_64/
lib/pyth=
on2.5/ctypes/__init__.py", line 340, in __init__
    self._handle =3D _dlopen(self._name, mode)
OSError: /opt/questasim_6.4/questasim/linux/libucdb.so: cannot open
shared o=
bject file: No such file or directory
>>> ^[[A
  File "<stdin>", line 1
    ^
SyntaxError: invalid syntax
>>>

- Paddy.



More information about the Python-list mailing list