[Python-Dev] Binary Compatibility Issue with Python v2.6.5 and v3.1.2

Phil Thompson phil at riverbankcomputing.com
Tue Apr 20 15:07:44 CEST 2010


On Tue, 20 Apr 2010 21:50:51 +0900, David Cournapeau <cournape at gmail.com>
wrote:
> On Tue, Apr 20, 2010 at 9:19 PM, Phil Thompson
> <phil at riverbankcomputing.com> wrote:
>> When I build my C++ extension on Windows (specifically PyQt with MinGW)
>> against Python v2.6.5 it fails to run under v2.6.4. The same problem
>> exists
>> when building against v3.1.2 and running under v3.1.1.
>>
>> The error message is...
>>
>> ImportError: DLL load failed: The specified procedure could not be
found.
>>
>> ...though I don't know what the procedure is.
>>
>> When built against v2.6.4 it runs fine under all v2.6.x. When built
under
>> v3.1.1 it runs fine under all v3.1.x.
>>
>> I had always assumed that an extension built with vX.Y.Z would always
run
>> under vX.Y.Z-1.
> 
> I don't know how well it is handled in python, but this is extremely
> hard to do in general - you are asking about forward compatibility,
> not backward compatibility.

Yes, I know.

> Is there a reason why you need to do this ? The usual practice is to
> build against the *oldest* compatible version you can, so that it
> remains compatible with everything afterwards,

I'm happy to do that if that is the recommendation, although this is the
first time I've noticed this sort of problem (since v1.5).

Phil


More information about the Python-Dev mailing list