ctypes: loading .so file on Linux

P

Paddy

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.Traceback (most recent call last):
File said:
from ctypes import *
^[[A^[[A
^e said:
cdll.LoadLibrary("libc.so.6")
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=
ryTraceback (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=
ryTraceback (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
File "<stdin>", line 1
^
SyntaxError: invalid syntax
- Paddy.
 
P

Paddy

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 said:

    ^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 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.

Any help would be appreciated.

Thanks.
 
C

castironpi

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 said:
    ^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 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")

Try 'open( "libucdb.so", "rb" )' to see if you're looking in the right
place.
 
U

Uwe Schmitt

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 said:
    ^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 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

Any help would be appreciated.

Thanks.

What is your current working directory and where is the lib located ?
Maybe the lib is not in your working directory.

If you want the lib accessed from anywhere, you have to copy it
to /usr/lib or /usr/local/lib.
Another possibility is setting LD_LIBRARY_PATH.

Greetings, Uwe
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top