[pypy-dev] Translate failes =(

Lutz Paelike lutz_p at gmx.net
Tue Jan 20 22:56:05 CET 2009


I have a guess how that could happen.

The reason is probably that two different versions of  MSVCR dll are  
loaded into the process that
result in a name clash of the symbols provided by the library.

Now *why* this happens is not entirely clear but i have also a wild  
guess here.

The standard Python2.4 distribution is using MSVCR71.dll an older  
version (7.1)
that is used when compiled with e.g. Visual Studio 2005

If you use python all installed  modules are  linked against  the same  
version of the MSVCR dll
and thus it works without a problem (provided you have MSVCR71.dll on  
your system).

Now the problem arises if you compile an extension yourself with a  
different compiler version
which links your compiled extension against a different  version of  
the library (in this case MSVCR90.dll = Version 9.0).

Solution:
1. You should use the same compiler version (VS 2005) as the one used  
of your python installation
or
2. Compile Python and all modules you use yourself from source and use  
that instead of an precompiled distribution

Another variable in this setup might be ctypes.
If ctypes loads the MSVCR library without providing the exact  
requested version it might
determine the best (newest) version itself and that might not be right  
one.

Hope this helps.
Cheers,

Lutz


Am 20.01.2009 um 22:13 schrieb Ветошкин Никита:

> Thanks to fijal, I've installed ctypes and now I have MessageBox  
> saying
> that system can't find "MSVCR90.DLL". After putting this library into
> current directory, I have this error:
> ---------------------------
> Microsoft Visual C++ Runtime Library
> ---------------------------
> Runtime Error!
>
> Program: C:\Python24\python.exe
>
> R6034
>
> An application has made an attempt to load the C runtime library
> incorrectly.
> Please contact the application's support team for more information.
>
>
> ---------------------------
> OK
> ---------------------------
>
> Google found this: http://msdn.microsoft.com/en-us/library/ms235560.aspx
> As I understand - we need to include manifest into resulting binary or
> perhaps link externmod_2.dll statically.
> The resulting stacktrace: http://pastebin.com/m6965b0f7
> Please help =)
>
> 20.01.2009 23:55, Ветошкин Никита пишет:
>> Hi, all!
>>
>> I'm trying to translate PyPy on Windows Vista x64 with Python2.4 32  
>> bit
>> and Visual Studio 2008 Express Edition. 32 bit - cause Express  
>> Edition
>> isn't shipped with x64 compiler.
>> Translation failes: http://pastebin.com/m70de1376.
>> Fixing Visual Studio version recognition ( warning about KeyError
>> VS71COMNTOOLS) doesn't help, translation failes with the same error.
>> Any suggestions?
>>
>> P.S. In answers, please, put my mail in copy, cause I'm subscribed to
>> digest =)
> _______________________________________________
> pypy-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/pypy-dev




More information about the Pypy-dev mailing list