From: waltub <wa...@gm...> - 2010-02-15 05:04:15
|
I have been following tutorial at http://www.py2exe.org/index.cgi/Tutorial Step 5.2.1 runs well, but the app generated on dist directory can't run on another windows machine which doesn't have Microsoft Visual C++ 2008 Redistributable Package installed. The tutorial explicitly said: " Now, simply copying the whole dist directory to your users machines should now allow your application to run, /*even on machines that don't have their own copy of the C++ runtime.*/". Here are steps i actually did: -Install Microsoft Visual C++ 2008 Redistributable Package on my development machine (Windows XP SP2), since i can get MSVCR90.dll and manifest just from it. -Search the apropriate DLL (MSVCR90.dll), and found these files on my machine: C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.cat C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcm90.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcp90.dll C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcr90.dll -Copy these files on C:\devel\py2exe_project\runtime -Create hello.py on C:\devel\py2exe_project: print("Hello") -Change the contents of C:\devel\py2exe_project\runtime\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest to: ?<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <noInheritable/> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"> </assemblyIdentity> <file name="msvcr90.dll" /> </assembly> -Create setup.py on C:\devel\py2exe_project as follow: from distutils.core import setup from glob import glob import py2exe data_files = [("Microsoft.VC90.CRT", glob(r'C:\devel\py2exe_project\runtime\*.*'))] setup( data_files=data_files, console=['hello.py'] ) -Run *python setup.py py2exe*, and everything goes well -Run dist\hello.exe, it works and prints *Hello *on screen. -Distribute the whole package (dist dir) and run this app on another machine, but failed and display dialog with following message: /E:/dist/hello.exe This operation has failed to start becase the application configuration is incorrect. Reinstalling the application may fix this problem. /Anybody know how to fix this problem? Any help would be appreciated. |
From: Werner F. B. <wer...@fr...> - 2010-02-15 08:05:03
|
On 15/02/2010 06:04, waltub wrote: > I have been following tutorial at http://www.py2exe.org/index.cgi/Tutorial > Step 5.2.1 runs well, but the app generated on dist directory can't run > on another windows machine which doesn't have Microsoft Visual C++ 2008 > Redistributable Package installed. The tutorial explicitly said: " Now, > simply copying the whole dist directory to your users machines should > now allow your application to run, /*even on machines that don't have > their own copy of the C++ runtime.*/". > > Here are steps i actually did: > -Install Microsoft Visual C++ 2008 Redistributable Package on my > development machine (Windows XP SP2), since i can get MSVCR90.dll and > manifest just from it. > -Search the apropriate DLL (MSVCR90.dll), and found these files on my > machine: > C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.cat > C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest > C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcm90.dll > C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcp90.dll > C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcr90.dll > -Copy these files on C:\devel\py2exe_project\runtime The above names will not work. You should have this in your runtime folder: Microsoft.VC90.CRT.manifest msvcm90.dll msvcp90.dll msvcr90.dll > -Create hello.py on C:\devel\py2exe_project: > print("Hello") > -Change the contents of > C:\devel\py2exe_project\runtime\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest > to: > <?xml version="1.0" encoding="UTF-8" standalone="yes"?> > <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> > <noInheritable/> > <assemblyIdentity > type="win32" > name="Microsoft.VC90.CRT" > version="9.0.21022.8" > processorArchitecture="x86" > publicKeyToken="1fc8b3b9a1e18e3b"> > </assemblyIdentity> > <file > name="msvcr90.dll" /> > </assembly> And the manifest I use (which is from Python 2.6) looks like this: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <noInheritable/> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> <file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" /> </assembly> Werner |
From: Werner F. B. <wer...@fr...> - 2010-02-15 09:01:45
|
On 15/02/2010 09:31, waltub wrote: > Werner F. Bruhin wrote: >> On 15/02/2010 06:04, waltub wrote: >> >>> I have been following tutorial athttp://www.py2exe.org/index.cgi/Tutorial >>> Step 5.2.1 runs well, but the app generated on dist directory can't run >>> on another windows machine which doesn't have Microsoft Visual C++ 2008 >>> Redistributable Package installed. The tutorial explicitly said: " Now, >>> simply copying the whole dist directory to your users machines should >>> now allow your application to run, /*even on machines that don't have >>> their own copy of the C++ runtime.*/". >>> >>> Here are steps i actually did: >>> -Install Microsoft Visual C++ 2008 Redistributable Package on my >>> development machine (Windows XP SP2), since i can get MSVCR90.dll and >>> manifest just from it. >>> -Search the apropriate DLL (MSVCR90.dll), and found these files on my >>> machine: >>> C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.cat >>> C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest >>> C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcm90.dll >>> C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcp90.dll >>> C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcr90.dll >>> -Copy these files on C:\devel\py2exe_project\runtime >>> >> >> The above names will not work. You should have this in your runtime folder: >> >> Microsoft.VC90.CRT.manifest >> msvcm90.dll >> msvcp90.dll >> msvcr90.dll >> >> > Thank u for the reply. But, sorry I can't get your point. Is the > problem just about the file name > (x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest > <--> Microsoft.VC90.CRT.manifest) or i bundle the wrong file? Where > can i get these files from? Is it ok to get these files from Microsoft > Visual C++ 2008 Redistributable Package installation? I use the one which came with Python 2.6, but I believe strictly legally you might have to use the redist package from MS. Werner |
From: Werner F. B. <wer...@fr...> - 2010-02-15 09:02:17
|
On 15/02/2010 09:46, waltub wrote: > Werner F. Bruhin wrote: >> On 15/02/2010 06:04, waltub wrote: >> >>> I have been following tutorial athttp://www.py2exe.org/index.cgi/Tutorial >>> Step 5.2.1 runs well, but the app generated on dist directory can't run >>> on another windows machine which doesn't have Microsoft Visual C++ 2008 >>> Redistributable Package installed. The tutorial explicitly said: " Now, >>> simply copying the whole dist directory to your users machines should >>> now allow your application to run, /*even on machines that don't have >>> their own copy of the C++ runtime.*/". >>> >>> Here are steps i actually did: >>> -Install Microsoft Visual C++ 2008 Redistributable Package on my >>> development machine (Windows XP SP2), since i can get MSVCR90.dll and >>> manifest just from it. >>> -Search the apropriate DLL (MSVCR90.dll), and found these files on my >>> machine: >>> C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.cat >>> C:\WINDOWS\WinSxS\Manifest\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest >>> C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcm90.dll >>> C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcp90.dll >>> C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375\msvcr90.dll >>> -Copy these files on C:\devel\py2exe_project\runtime >>> >> >> The above names will not work. You should have this in your runtime folder: >> >> Microsoft.VC90.CRT.manifest >> msvcm90.dll >> msvcp90.dll >> msvcr90.dll >> >> > Thank u a million Werner. Finally it works. Yes, i got your point. I > should rename > x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-www_d08d0375.manifest > to Microsoft.VC90.CRT.manifest. Never thought this was the problem. > Thank u werner. You are welcome, please keep the posts on the list for the archive. Werner |