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 =)
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 =)
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.
Heh :) I suppose that's us, but I have no clue, sorry ;-) Cheers, fijal
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@codespeak.net http://codespeak.net/mailman/listinfo/pypy-dev
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@codespeak.net http://codespeak.net/mailman/listinfo/pypy-dev
I used /MT flag - that is static linking (in pypy\translator\platform\windows.py). Then installed zlib, added zlib's include dir to my INCLUDE env variable. And... now it's building =) 21.01.2009 2:57, Lutz Paelike пишет:
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@codespeak.net http://codespeak.net/mailman/listinfo/pypy-dev
Hello, On Tue, Jan 20, 2009 at 23:24, Ветошкин Никита <nvetoshkin@naumen.ru> wrote:
I used /MT flag - that is static linking (in pypy\translator\platform\windows.py). Then installed zlib, added zlib's include dir to my INCLUDE env variable. And... now it's building =)
The /MT flag is a nice trick. But the ctypes module of the generated pypy-c will not work correctly: get_libc() is supposed to return the MSVCRT.dll linked with the executable, this function won't work if the c runtime is linked statically. The best would be to use /MT (=static C runtime) to build extension modules (during the "configure" phase) and /MD (=shared C runtime) when building the pypy-c executable. -- Amaury Forgeot d'Arc
participants (4)
-
Amaury Forgeot d'Arc
-
Lutz Paelike
-
Maciej Fijalkowski
-
Ветошкин Никита