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

AltStyle によって変換されたページ (->オリジナル) /