From: Dick M. <rd...@rc...> - 2006-08-30 09:43:34
|
At 10:43 PM 8/29/2006, John Machin wrote: >On 30/08/2006 1:47 PM, Dick Moores wrote: > > OK, I edited the path, adding E:\Python24\, and rebooted (did I need to?). > >No, you didn't need to reboot. OK, thanks. > > This time, with both my app and setup.py in > > E:\Python24\For_py2exe_setup.py, py2exe worked and created an exe that > > worked. However, when I copied it to my desktop I found that all that > > happened when clicking on it was a quick flash of some window. > > > >The "dist" directory contains the files [plural] that need to be >distributed. Copying the exe is not enough. You may wish to read the >FAQ: http://www.py2exe.org/index.cgi/FAQ >You may wish to put a *shortcut* to whatever.exe on your desktop; that >will work, provided of course that the other files are in the same >directory as the exe. I did skim the FAQ before, but what it was saying didn't register with me. I was laboring under the misapprehension that py2exe, when it worked, would turn a .py into a .exe that I could email to someone or hand to him on a disk, and he could run it as is. So, now that I know that isn't the case, I'm a bit less interested in learning to use py2exe. If I have a good Python program, I'm happy running it as a .py. I don't see the need for the .exe at all. Now, I'm sure I'm wrong about this, but don't know where. There must be a way to create a nice package for a friend that contains the .exe and all the other goodies necessary to run it. Where is this info? Why is this so hard? Or maybe I should just continue learning Python and get back to this packaging later. > > Then I thought I'd try a simple script, helloWorld.py . the exe was > > created OK, but when moving it out of dist into any other folder, again > > got that flashing window. Here's the script: > > > > ======================== > > # Hello World! > > print "Hello, World!" > > > > raw_input("\n\nPress the enter key to exit.") > > ========================= > > > > I tried to run this at the command line, with these results: > > > > ============================= > > E:\Python24\For_py2exe_setup.py\dist>helloWorld.exe > > Hello, World! > > > > > > Press the enter key to exit. > > > > E:\Python24\For_py2exe_setup.py\dist>cd.. > > > > E:\Python24\For_py2exe_setup.py>helloWorld.exe > > LoadLibrary(pythondll) failedThe specified module could not be found. > > > > E:\Python24\For_py2exe_setup.py> > > ============================= > > (see way down below for what was printed during the creation of > > helloWorld.exe) > > > > > > Here's the command line result for 2 identical copies of 1keyPress-b5.exe: > > > > ========================== > > E:\Python24\dist>1keyPress-b5.exe > > > > The program has started. > > > > press Space to get first and sub >[snip] > > > > E:\Python24\Myscripts>1keyPress-b5.exe > > LoadLibrary(pythondll) failedThe specified module could not be found. > >You may wish to raise an enhancement request for a more explicit error >message. Evidently "pythondll" is a generic term, not the name of a >particular file. After reading around a bit I came across the filename python24.dll. That's probably what's meant in my case. I found 2 of them. One in E:\Python24\dist and one in E:\Python24\For_py2exe_setup.py\dist . I put another copy in E:\Python24\Myscripts and now the copy of 1keyPress-b5.exe that's in there runs fine! I had put a couple of exe's on my desktop--they didn't work there, but after putting another copy of python24.dll there, they work fine as well. I sent a couple of exe's that I had, along with python24.dll, to a friend with a Win 2000 box. The results were uneven. One, 1keyPress-b5.exe, worked even though reporting this error: "Traceback (most recent call last): File "E:\Python24\lib\site-packages\py2exe\boot_common.py", line 92, in ImportError: No module named linecache" The other exe failed. I later realized that I got the same error when running 1keyPress-b5.exe in a folder with python24.dll, but without library.zip (which py2exe creates in dist folders). When I added library.zip to that folder, 1keyPress-b5.exe ran without error. I've subsequently sent my friend library.zip and expect (hope) both exe's will run fine for him. So it may be that I can now make a kind of zipped up package to send out--exe's plus python24.dll and library.zip. Does this make sense? Dick |