[Numpy-discussion] Compile extension modules with Visual Studio 2005

Robert Kern robert.kern@gmail....
Tue Jul 24 13:55:16 CDT 2007


Geoffrey Zhu wrote:
> Hi,
>  
> I am about to write a C extension module. C functions in the module will
> take and return numpy arrays. I found a tutorial online, but I am not
> sure about the following:
>  
> 1. Can I compile my extension with Visual Studio 2005? My impression is
> that I will have to link with numpy libraries, and, if numpy was
> compiled with a different compiler, I might have problems. However, if
> numpy is a DLL, maybe there is a way that I can build a LIB file based
> on the DLL and link with the LIB file. Does anyone have experience in
> doing this?

numpy isn't the issue. The main Windows Python distribution requires Visual
Studio 2003 for building extensions. One can do it with mingw, though, with care.

> 2. I am new to writing python extensions. The tutorial is doing things
> by hand. Does anyone know what is the best way to do this? How about SWIG?

There isn't a single best way. They all have tradeoffs. It might be easiest for
you to actually just write your C functions into a DLL without referencing numpy
or Python at all and call those functions using ctypes. That avoids needing a
specific compiler and is a pretty handy tool to learn.

If you do want to write an extension, I think I might suggest starting with
writing one by hand. It helps with the other techniques to know what's going on
underneath.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco


More information about the Numpy-discussion mailing list