[Numpy-discussion] CTypes: How to incorporate a library with shared library module?
Tue Feb 12 00:41:55 CST 2008
Robert Kern wrote:
> On Feb 12, 2008 12:14 AM, Damian Eads <email@example.com> wrote:
>> David Cournapeau wrote:
>>> On Mon, 2008-02-11 at 22:50 -0700, Damian Eads wrote:
>>>> Dear Lou,
>>>> You may want to try using distutils or setuputils, which makes compiling
>>>> extensions much easier. It does the hard work of finding out which flags
>>>> are needed to compile extensions on the host platform. There are many
>>>> examples on the web on how to use distutils to build C extensions
>>> Unfortunately, this does not work. Distutils only knows how to build
>>> python extensions, not shared libraries. Depending on the platform, this
>>> is not the same thing, and mac os X is such a platform where both are
>>> not the same.
>> Really? distutils generates .so files for me, which I assume are shared
>> libraries. FYI: I'm running Fedora 8 on an x86. Does distutils not
>> generate a shared library on a mac?
> Python extension modules are shared libraries, yes. But they must
> follow a particular format, namely exposing a correct
> "init<modulename>" function. distutils/setuptools only maked Python
> extension modules, not arbitrary shared libraries.
Perhaps I was a bit too liberal in my use of the term "extension
module". Several small libraries for a project at work do not define the
standard init<modulename> function, and yet they build with distutils. I
can load them into ctypes without any hitches. Perhaps distutils does
not check for the presence of the init<modulename> function and required
data structures? I'll admit I may be abusing distutils by using it for
something for which it wasn't designed.
More information about the Numpy-discussion