Pyrex-0.9.3: definition mismatch with distutils of Python24

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


mb at muenster.de (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 Setup.py build_ext --inplace
> running build_ext
> building 'primes' extension
> [...]
>   File "C:\Python24\lib\distutils\command\build_ext.py", line 442, in
> build_extension
>     sources = self.swig_sources(sources, ext)
> TypeError: swig_sources() takes exactly 2 arguments (3 given)
>
>
> I can see that Pyrex.Distutils.build_ext.py 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
arguments.

-- 
|>|\/|<
/--------------------------------------------------------------------------\
|David M. Cooke
|cookedm(at)physics(dot)mcmaster(dot)ca



More information about the Python-list mailing list