There is a lot of hoopla on the internet over this issue. If I understand it correctly, I am lacking a manifest file for my own application. (I haven't tried this yet). http://llbit.se/?p=19
If this is correct, is it possible to have cx_Freeze generate such a manifest file ? I understand that you do not want to bundle the redistributable dll's in cx_Freeze, but that is not a problem. These dll's can be easily found on the internet. so when I freeze my hello.py, I should get the following in my install dir: hello.exe hello.exe.manifest I can then add the following files in that same directory: Microsoft.VC90.CRT\Microsoft.VC90.CRT.manifest Microsoft.VC90.CRT\msvcm90.dll Microsoft.VC90.CRT\msvcp90.dll Microsoft.VC90.CRT\msvcr90.dll Does this sound correct ? -----Original Message----- From: Mangelschots, Jef Sent: Tuesday, December 09, 2008 2:48 PM To: 'Anthony Tuininga' Cc: [email protected] Subject: RE: FW: executables no longer executing on PC's without Python installed I tried to copy the contents of C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86 as-is to the same directory that has my top-level EXE. This didn't work. I also flattened it out, i.e. put all DLL's and manifest files in the same directory, and that didn't help either. Is there anything else I need to do ? Just to clarify, up until now, I had copied my Python executables to a network directory and referenced these EXE's in various batch files used by other people within my company. This always worked great. Nobody needed to install anything. Whenever I made an update, I applied it once to the network copy, and the next time someone launched his batch-files, he picked up the fix. Everything that I read on the internet, seems to be pushing for having every PC that wants to run the executables at least run the vcredist_x86.exe. Some articles suggest that I can store the DLL's in the same directory but that doesn't' work somehow. Do I need to create a manifest file ? Is there no other way to make this work without having to register stuff ? When executing the application on a PC that does not have these DLL's, it really does not give any clue what was wrong (at least on previous ocasions, it printed a message that it needed msvcrt71.dll). Is there a way to hook some code that at least prints a message indicating that the VS2008 redistributable package needs to be installed, or better yet, code that launches the redsitributable installer ? note: all my tools are command line tools. thx Jef -----Original Message----- From: Anthony Tuininga [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 03, 2008 8:22 AM To: Mangelschots, Jef Cc: [email protected] Subject: Re: FW: executables no longer executing on PC's without Python installed This is a known issue with Python 2.6 on Windows and is across the board as you noticed with the fact that py2exe was affected as well. Basically, Visual Studio 2008 now requires the use of SxS (side-by-side) installation. You have a few options: 1) Install the Visual Studio 2008 redistributable on target machines 2) Create a "standalone" package with a manifest and redistribute the DLLs in the same directory as your executable. You can get these from an existing installation of the Visual Studio 2008 redistributables 3) Go back to using Python 2.5 until more people have done 1) for other purposes. :-) I've personally used 1) right now and that is the default behavior of cx_Freeze. I have at least confirmed that 2) works. I'm not sure I want to go there for the default behavior of cx_Freeze as there are murky legal issues that I'd rather not get into! I've used 3) for anything that I ship outside of work for now until some of these issues have been resolved. I hope that explains things sufficiently. Its not exactly pleasant although it works fine once you get past the issues. :-) Anthony On Tue, Dec 2, 2008 at 5:03 PM, Mangelschots, Jef <[EMAIL PROTECTED]> wrote: > I got it to work again, by switching back to python-2.5.2.msi and > cx_Freeze-4.0.1.win32-py2.5.msi > > > > I could not get it to work for python-2.6.msi and > cx_Freeze-4.0.1.win32-py2.6.msi. > > > > It also worked for python-2.4.4.msi and cx_Freeze-4.0.1.win32-py2.4.exe > > > > PS: I am running XP Professional SP2 (updated) > > > > The only differences I see between the two is that msvcr90.dll is used > instead of msvcr71.dll used by python25 and prior > > and that the console.exe from cx_Freeze is different for each version. > > > > It is a pity, I can not switch to Python26 because of this. > > > > regards > > Jef Mangelschots > > > > > > From: Mangelschots, Jef > Sent: Tuesday, December 02, 2008 11:27 AM > To: '[EMAIL PROTECTED]' > Subject: executables no longer executing on PC's without Python installed > > > > Anthony, > > could I bother you with a problem I recenty encounter with cx_Freeze ? > > Do you have any suggestions I could look at. > > > > I have been a long time user of cx_Freeze, and it always worked very well > for me. > > > > For a long time I have used Python 2.4 (briefly 2.5.x) and cx_Freeze 3.0.1 > > I recently switched to Python 2.6. > > I use the latest cx_Freeze-4.0.1.win32-py2.6.msi. > > > > now, all of a sudden, my executables fail to execute on other people's PC's > (they do not have any Python installed, my PC does). > > The Windows cmd line gives the following error: "The system can not execute > the specified program" > > The program still executes on my PC. > > (The funny thing is, I tried to switch to py2exe, and the generated > distribution did exactly the same) > > > > > > I wanted to attach the distribution as it is generated by cx_Freeze, but > your gmail account refused attachments holding executable files. > > > > > > > > To build the distribution, I use the following command line options: > > cxfreeze.bat --target-dir= N:\sw_tools\CFGMGR \bin\latest\ > --target-name=VERSIONMGR.exe N:\sw_tools\CFGMGR > \src\VERSIONMGR\VERSIONMGR.py > > > > > > > > This is the output it dumps to the screen: > > > > copying c:\Python26\lib\site-packages\cx_Freeze\bases\Console.exe -> > N:\sw_tools\CFGMGR\bin\latest\VERSIONMGR.exe > > copying c:\Python26\python26.dll -> > N:\sw_tools\CFGMGR\bin\latest\python26.dll > > copying > C:\WINDOWS\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e\MSVCR90.dll > -> N:\sw_tools\CFGMGR\bin\latest\MSVCR90.dll > > writing zip file N:\sw_tools\CFGMGR\bin\latest\VERSIONMGR.exe > > > > Name File > > ---- ---- > > m StringIO c:\Python26\lib\StringIO.py > > m UserDict c:\Python26\lib\UserDict.py > > m __builtin__ > > m __future__ c:\Python26\lib\__future__.py > > m __main__ N:\sw_tools\CFGMGR\src\VERSIONMGR\VERSIONMGR.py > > m _abcoll c:\Python26\lib\_abcoll.py > > m _bisect > > m _codecs > > m _collections > > m _functools > > m _hashlib c:\Python26\DLLs\_hashlib.pyd > > m _heapq > > m _locale > > m _md5 > > m _random > > m _sha > > m _sha256 > > m _sha512 > > m _sre > > m _strptime c:\Python26\lib\_strptime.py > > m _struct > > m _subprocess > > m _threading_local c:\Python26\lib\_threading_local.py > > m _warnings > > m abc c:\Python26\lib\abc.py > > m app_lib N:\sw_tools\PYTHON_LIB\app_lib.py > > m array > > m bdb c:\Python26\lib\bdb.py > > m binascii > > m bisect c:\Python26\lib\bisect.py > > m cPickle > > m cStringIO > > m calendar c:\Python26\lib\calendar.py > > m cmd c:\Python26\lib\cmd.py > > m codecs c:\Python26\lib\codecs.py > > m collections c:\Python26\lib\collections.py > > m copy c:\Python26\lib\copy.py > > m copy_reg c:\Python26\lib\copy_reg.py > > m cx_Freeze__init__ > c:\Python26\lib\site-packages\cx_Freeze\initscripts\Console.py > > m datetime > > m difflib c:\Python26\lib\difflib.py > > m dis c:\Python26\lib\dis.py > > m doctest c:\Python26\lib\doctest.py > > m dummy_thread c:\Python26\lib\dummy_thread.py > > P encodings c:\Python26\lib\encodings\__init__.py > > m encodings.aliases c:\Python26\lib\encodings\aliases.py > > m errno > > m file_lib N:\sw_tools\PYTHON_LIB\file_lib.py > > m fnmatch c:\Python26\lib\fnmatch.py > > m functools c:\Python26\lib\functools.py > > m gc > > m genericpath c:\Python26\lib\genericpath.py > > m getopt c:\Python26\lib\getopt.py > > m gettext c:\Python26\lib\gettext.py > > m glob c:\Python26\lib\glob.py > > m hashlib c:\Python26\lib\hashlib.py > > m heapq c:\Python26\lib\heapq.py > > m imp > > m inspect c:\Python26\lib\inspect.py > > m inv_lib N:\sw_tools\PYTHON_LIB\inv_lib.py > > m itertools > > m keyword c:\Python26\lib\keyword.py > > m linecache c:\Python26\lib\linecache.py > > m locale c:\Python26\lib\locale.py > > m marshal > > m math > > m msvcrt > > m nt > > m ntpath c:\Python26\lib\ntpath.py > > m opcode c:\Python26\lib\opcode.py > > m operator > > m optparse c:\Python26\lib\optparse.py > > m os c:\Python26\lib\os.py > > m pdb c:\Python26\lib\pdb.py > > m pickle c:\Python26\lib\pickle.py > > m posixpath c:\Python26\lib\posixpath.py > > m pprint c:\Python26\lib\pprint.py > > m pvcs_mgr N:\sw_tools\PYTHON_LIB\pvcs_mgr.py > > m pywintypes C:\WINDOWS\system32\pywintypes26.dll > > m random c:\Python26\lib\random.py > > m re c:\Python26\lib\re.py > > m reporter N:\sw_tools\PYTHON_LIB\reporter.py > > m repr c:\Python26\lib\repr.py > > m select c:\Python26\DLLs\select.pyd > > m sha c:\Python26\lib\sha.py > > m shlex c:\Python26\lib\shlex.py > > m shutil c:\Python26\lib\shutil.py > > m signal > > m sre_compile c:\Python26\lib\sre_compile.py > > m sre_constants c:\Python26\lib\sre_constants.py > > m sre_parse c:\Python26\lib\sre_parse.py > > m stat c:\Python26\lib\stat.py > > m string c:\Python26\lib\string.py > > m strop > > m struct c:\Python26\lib\struct.py > > m subprocess c:\Python26\lib\subprocess.py > > m sys > > m table N:\sw_tools\PYTHON_LIB\table.py > > m tempfile c:\Python26\lib\tempfile.py > > m textwrap c:\Python26\lib\textwrap.py > > m thread > > m threading c:\Python26\lib\threading.py > > m time > > m token c:\Python26\lib\token.py > > m tokenize c:\Python26\lib\tokenize.py > > m traceback c:\Python26\lib\traceback.py > > m types c:\Python26\lib\types.py > > m unittest c:\Python26\lib\unittest.py > > m warnings c:\Python26\lib\warnings.py > > m win32api c:\Python26\lib\site-packages\win32\win32api.pyd > > m zipimport > > m zlib > > > > copying c:\Python26\DLLs\_hashlib.pyd -> > N:\sw_tools\CFGMGR\bin\latest\_hashlib.pyd > > copying C:\WINDOWS\system32\pywintypes26.dll -> > N:\sw_tools\CFGMGR\bin\latest\pywintypes26.dll > > copying c:\Python26\DLLs\select.pyd -> > N:\sw_tools\CFGMGR\bin\latest\select.pyd > > copying c:\Python26\lib\site-packages\win32\win32api.pyd -> > N:\sw_tools\CFGMGR\bin\latest\win32api.pyd > > > > > > ________________________________ > Any files attached to this e-mail will have been checked with virus > detection software prior to transmission but you should carry out your own > virus check before opening any attachment. Safetran Systems Corp does not > accept liability for any damage or loss which may be caused by software > viruses. The contents of this e-mail and any attachments are the property of > Safetran Systems Corp and are intended for the confidential use by the named > recipient only. They may be legally privileged and should not be > communicated to, or relied upon, by any other person without written > consent. If you are not the addressee, please notify us immediately at the > following address: Safetran Systems Corporation, 2400 Nelson Miller Parkway, > Louisville, Kentucky 40223. Safetran Systems Corp is a subsidiary of > Invensys Plc. Registered office: Portland House, Bressenden Place, London, > SW1E 5BF. UK Registered in England and Wales No. 1641421. > Any files attached to this e-mail will have been checked with virus detection software prior to transmission but you should carry out your own virus check before opening any attachment. Safetran Systems Corp does not accept liability for any damage or loss which may be caused by software viruses. The contents of this e-mail and any attachments are the property of Safetran Systems Corp and are intended for the confidential use by the named recipient only. They may be legally privileged and should not be communicated to, or relied upon, by any other person without written consent. If you are not the addressee, please notify us immediately at the following address: Safetran Systems Corporation, 2400 Nelson Miller Parkway, Louisville, Kentucky 40223. Safetran Systems Corp is a subsidiary of Invensys Plc. Registered office: Portland House, Bressenden Place, London, SW1E 5BF. UK Registered in England and Wales No. 1641421. ------------------------------------------------------------------------------ SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. The future of the web can't happen without you. Join us at MIX09 to help pave the way to the Next Web now. Learn more and register at http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ _______________________________________________ cx-freeze-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cx-freeze-users
