Pyrex-0.9.3: definition mismatch with distutils of Python24

David M. Cooke cookedm+news at
Thu Jan 13 22:47:24 EST 2005

mb at (Martin Bless) writes:

> Now that I've got my extension building machine using the VC++ Toolkit
> 2003 up and running I'm keen on using Pyrex (Pyrex-0.9.3,
> Python-2.4.0).
> But the definition of the swig_sources() method seems to have changed.
> When I try to build the examples from Pyrex I get a TypeError:
> c:\Pyrex-0.9.3\Demos> python build_ext --inplace
> running build_ext
> building 'primes' extension
> [...]
>   File "C:\Python24\lib\distutils\command\", line 442, in
> build_extension
>     sources = self.swig_sources(sources, ext)
> TypeError: swig_sources() takes exactly 2 arguments (3 given)
> I can see that subclasses
> distutils.command.build_ext.build_ext, and the number of arguments of
> the swig_sources method seems to have changed.
> Pyrex uses:
>   def swig_sources (self, sources):
> whereas the distutils use:
>   def swig_sources (self, sources, extension):
> If I just add the "extension" arg to the Pyrex definitions everything
> seems to work. But I have to admit that I don't really know what I'm
> doing here and I feel sorry I can't contribute more than just
> reporting the error.

Yep, that's it. Greg must know now, it's been reported a few times.
You'll want to change it to

def swig_sources(self, sources, extension=None):

so that if you use an older python it won't complain about missing

|David M. Cooke

More information about the Python-list mailing list