Wrapping C with Python

Anish Chapagain anishchapagain at gmail.com
Mon Aug 4 07:12:03 EDT 2008


Hi!!
I tried wrapping a simple C code suing SWIG to Python, but am having
problem,
my .c file is,

Step 1:
example.c
--------------
double val=3.0;
int fact(int n)
{
if(n<=1)
return 1;
else
return n*fact(n-1);
}

int mod(int x, int y)
{
return (x%y);
}

Step 2:
I then created interface file as.
example.i
--------------
%module example
%{
%}
extern int fact(int n);
extern int mod(int x,int y);

Step 3:
I compiled the .i file with SWIG,
                                           c:\python25\swig> swig -
python example.i
It creates example.py and example_wrap.c

Step 4:
I compiled example.c and example_wrap.c individually
 c:\python25\mingw\bin>   gcc -c example.c                  (it create
example.o)
 c:\python25\mingw\bin>   gcc -c example_wrap.c -Ic:
\python25\include    (it create example_wrap.o)

Step 5:
building .pyd for windows,
 c:\python25\mingw\bin>   gcc -shared *.o -o _example.pyd -Lc:
\python25\libs -lpython25 (it creates _example.pyd)


Then, i imported example module by palcing it in python25 directory,
it get's imported but i'm not able to use function, when i called
                         >>>print example.fact(4)
                         >>>print example.mod(4,2)
It is nither showing any error nor message...
even i tried simple void fact() by printf inside .c file and is not
showing ...

hope for help...
regard's
Anish



More information about the Python-list mailing list