Building an extension module with SWIG
garyr
garyr at fidalgo.net
Sat May 30 12:22:17 EDT 2015
I'm trying to create an extension module using SWIG. I've
succeeded in generating a pyd file but when I import the module I get the
error message: "SystemError: dynamic module not initialized properly." I
added an initfoo() function but that didn't solve the problem. Below are the
various files, a slightly modified version of a SWIG exmaple.
I'm using Python 2.7
What am I missing?
//foo.c:
#include "foo.h"
double Foo;
void initfoo()
{
Foo = 3.0;
}
int gcd(int x, int y) {
int g;
g = y;
while (x > 0) {
g = x;
x = y % x;
y = g;
}
return g;
}
#foo.h:
extern void initfoo();
extern double Foo;
extern int gcd(int x, int y);
#foo.i:
%module example
%inline %{
extern int gcd(int x, int y);
extern double Foo;
%}
#setup.py
from setuptools import setup, Extension
setup(name='foo',
version='0.1',
ext_modules=[Extension('foo', ['foo.c', 'foo.i'],
include_dirs=['.'],
depends=['foo.h', 'foo.i'],
swig_opts=['-modern', '-I../include'],
)],
)
More information about the Python-list
mailing list