[ctypes-users] Ctypes in numpy
Brought to you by:
theller
From: Gael V. <gae...@no...> - 2006-09-30 23:18:22
|
Hi all, I am totally new to ctypes. I am not exactly an expert porgramer: I am physicist who always gets asked to solve peoples problems. My current problem is that I would like to interface a camera with python (numpy to be precise). I have the SDK of the camera, and C++ functions and classes to use for the interfacing. I have sorted out how to control the camera from C++, and now I want to find out how to control the C++ from python. First thing I do is try Albert Strasheim's example on http://scipy.org/Cookbook/Ctypes2 . I am trying this out on Ubuntu Dapper with Andrew Straw's Numpy packages (numpy version 1.0b5). I did pure copy and paste of Albert's examples (including the Sconstruct file). Compilation with scons went fine, but the python call to loadlibrary doesn't work: In [4]: import numpy as N In [5]: _foo =3D N.ctypeslib.load_library('foo', '.') -------------------------------------------------------------------------= -- exceptions.OSError Traceback (most recent call last) /home/varoquau/work/toronto/bin/ctypes/<ipython console> /usr/lib/python2.4/site-packages/numpy/ctypeslib.py in load_library(libname, loader_path) 21 import ctypes 22 libpath =3D os.path.join(libdir, libname) ---> 23 return ctypes.cdll[libpath] 24 25 def _num_fromflags(flaglist): /usr/lib/python2.4/site-packages/ctypes/__init__.py in __getitem__(self, name) 424 425 def __getitem__(self, name): --> 426 return getattr(self, name) 427 428 def LoadLibrary(self, name): /usr/lib/python2.4/site-packages/ctypes/__init__.py in __getattr__(self, name) 419 raise AttributeError, name 420 libpath =3D find_library(name) --> 421 dll =3D self._dlltype(libpath) 422 setattr(self, name, dll) 423 return dll /usr/lib/python2.4/site-packages/ctypes/__init__.py in __init__(self, name, handle, mode) 329 self._name =3D name 330 if handle is None: --> 331 self._handle =3D _LoadLibrary(self._name, mode) 332 else: 333 self._handle =3D handle OSError: lib/home/varoquau/work/toronto/bin/ctypes/foo.so.so: cannot open shared object file: No such file or directory In [6]: Strangely enough, in my current directory I don't have a foo.so.so, I do have a libfoo.so. So just to check I do a symlink from foo.so.so to libfoo.so, but I get the same error message. I am sure this problem probably has a very simple answer. Could you give me a hand debugging this ? Cheers, Ga=EBl |