[Pythonmac-SIG] cyptes problem on MacOS X

Christopher Barker Chris.Barker at noaa.gov
Tue Dec 12 01:21:15 CET 2006


Russell E. Owen wrote:
> I've been trying out ctypes (from MacPython 2.5) on MacOS X on a PPC Mac 
> and have run into a problem.

I'm no help here.

> On a related subject...assuming I can get this to work...does anyone 
> have any idea how the speed of ctypes relates to programming a python C 
> extension or using SWIG?

probably a bit better performance for ctypes -- swig does put a fair bit 
  between C and Python.

> This is mostly for use with NumPy and 
> interfacing python to C/C++-based heavy duty astronomical image 
> processing code.

In this case, you'll mostly  be passing large arrays back and forth -- I 
doubt the overhead of any wrapping technique will be noticeable.

That being the case, what you want is whatever is most comfortable for 
you.

> We'll mostly be interfacing to C++ so 
> I've considered trying out Boost, but it hasn't had an update in years 
> which worries me.

I'm pretty sure that someone has updated the boost array code for numpy, 
but I'm not sure where to find that out. I'd ask on the numpy list - if 
no one there is using it, I'd call it risky. You might also look at the 
C++-sig -- there's been discussion of this there recently.

pyrex is another candidate worth looking at. There should be examples on 
the scipy Wiki.

This has been my way of thinking:

If you have a substantial existing C/C++ library, particularly one that 
is undergoing continued development and needs to be used with both c/C++ 
and Python code: use SWIG (or maybe SIP, but I've never heard of that 
being used with numpy)

If you have a single dll (or *.so, etc) or small lib, use ctypes.

If you have ONLY the dll, and not source code, definitely use ctypes!

If you're developing extensions just for use with Python, use pyrex or 
boost. Prefer pyrex is it's C, boost if it's C++. Boost gets even more 
compelling if you are using other boost libs for your C++ stuff.

Cxx maybe worth a look-see. I think it's being used for matplotlib, so 
there must be a way to so numpy with it.

http://sourceforge.net/projects/cxx/

It would be great it we could put a note like this, with more detail, on 
the Scipy Wiki. Maybe you could do that when you learn more.

(oh, and be sure to check the Scipy Wiki. there is some stuff there already)

-Chris





-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov


More information about the Pythonmac-SIG mailing list