[Numpy-discussion] Calling routines from a Fortran library using python

Nils Wagner nwagner at iam.uni-stuttgart.de
Thu Feb 18 05:33:02 EST 2010


On Thu, 18 Feb 2010 19:21:03 +0900
  David Cournapeau <david at silveregg.co.jp> wrote:
> Nils Wagner wrote:
>> On Thu, 18 Feb 2010 18:32:18 +0900
>>   David Cournapeau <david at silveregg.co.jp> wrote:
>>> Nils Wagner wrote:
>>>> Hi all,
>>>>
>>>> I have a static  library (*.a) compiled by gfortran but 
>>>> no 
>>>> source files.
>>>> How can I call routines from that library using python ?
>>> Is there any kind of interface (.h, etc...) ? If this is 
>>> a proprietary 
>>> library, there has to be something so that it can be 
>>> called from C, and 
>>> anything that can be called from C can be called from 
>>> python. If you 
>>> don't know at least the functions signatures, it will be 
>>> very difficult 
>>> (you would have to disassemble the code to find how the 
>>> functions are 
>>> called, etc...).
>>>
>>> cheers,
>>>
>>> David
>>   
>> Hi David,
>> 
>> you are right. It's a proprietary library.
>> I found a header file (*.h) including prototype 
>> declarations of externally callable procedures.
>> 
>> How can I proceed ?
> 
> Exactly as you would do for a C library (ctypes, cython, 
>by hand, swig, 
> etc...). Once you have the header (plus the C->Fortran 
>ABI convention, 
> which depend on your compilers and platforms), it is 
>exactly as calling 
> a C function in a C library,
> 
> cheers,
> 
> David
  
To be honest that's over my head. I mean I have never used 
C before.
Where can I find a step-by-step example for my task ?

Nils



More information about the NumPy-Discussion mailing list