"garyr" <ga...@fidalgo.net> wrote in message news:mkco9p$gf8$1...@speranza.aioe.org... > 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'], > )], > ) > It's working! The first character of the name of the extension must be an underscore; e.g.,
> ext_modules=[Extension('_foo', ['foo.c', 'foo.i'], and the initfoo() function is not needed. Thanks to all that replied to my post. -- https://mail.python.org/mailman/listinfo/python-list