ctypes: loading .so file on Linux

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Paddy

    ctypes: loading .so file on Linux

    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.LoadLibr ary("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.LoadLibr ary("libc.so.6" )
    <CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>
    >>cdll.LoadLibr ary("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(n ame)
    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._n ame, mode)
    OSError: libucdb.so: cannot open shared object file: No such file or
    directo=
    ry
    >>cdll.LoadLibr ary("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.s o")
    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._n ame, 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._n ame, 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.
  • Paddy

    #2
    Re: ctypes: loading .so file on Linux

    On Aug 23, 2:33 pm, Paddy <paddy3...@goog lemail.comwrote :
    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.LoadLibrar y("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.Lo adLibrary("libc .so.6")
    >
    <CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>>>cd ll.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(n ame)
      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._n ame, mode)
    OSError: libucdb.so: cannot open shared object file: No such file or
    directo=
    ry>>cdll.LoadLi brary("libc.so. 6")
    >
    <CDLL 'libc.so.6', handle 2a958a2900 at 2a95df3ad0>>>li bc =3D CDLL("libc.so.6 ")
    >libc
    >
    <CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>>>li bc =3D CDLL("libucdb.s o")
    >
    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._n ame, 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._n ame, 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.

    Comment

    • castironpi

      #3
      Re: ctypes: loading .so file on Linux

      On Aug 27, 12:03 am, Paddy <paddy3...@goog lemail.comwrote :
      On Aug 23, 2:33 pm, Paddy <paddy3...@goog lemail.comwrote :
      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.>>c dll.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.Lo adLibrary("libc .so.6")
      >
      <CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>>>cd ll.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(n ame)
        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._n ame, mode)
      OSError: libucdb.so: cannot open shared object file: No such file or
      directo=
      ry>>cdll.LoadLi brary("libc.so. 6")
      >
      <CDLL 'libc.so.6', handle 2a958a2900 at 2a95df3ad0>>>li bc =3D CDLL("libc.so.6 ")
      >>libc
      >
      <CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>>>li bc =3D CDLL("libucdb.s o")
      >
      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._n ame, 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.

      Comment

      • Uwe Schmitt

        #4
        Re: ctypes: loading .so file on Linux

        On 27 Aug., 07:03, Paddy <paddy3...@goog lemail.comwrote :
        On Aug 23, 2:33 pm, Paddy <paddy3...@goog lemail.comwrote :
        >
        >
        >
        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.>>c dll.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.Lo adLibrary("libc .so.6")
        >
        <CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>>>cd ll.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(n ame)
          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._n ame, mode)
        OSError: libucdb.so: cannot open shared object file: No such file or
        directo=
        ry>>cdll.LoadLi brary("libc.so. 6")
        >
        <CDLL 'libc.so.6', handle 2a958a2900 at 2a95df3ad0>>>li bc =3D CDLL("libc.so.6 ")
        >>libc
        >
        <CDLL 'libc.so.6', handle 2a958a2900 at 2a95dda490>>>li bc =3D CDLL("libucdb.s o")
        >
        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._n ame, 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._n ame, 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.
        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

        Comment

        Working...