py2exe problem

Jay Parlar jparlar at home.com
Fri Jul 20 18:17:55 EDT 2001


My colleague and I are working on an application, coded mostly in Python, that must be distributed to people who don't 
have Python installed on their machines. Anyway, py2exe seemed the natural way to do this. However, it doesn't seem to 
be working correctly (although as is usually the case, I believe it has more to do with me than with py2exe).

The first step in using py2exe is giving it an install script. Because of the nature of the program, we have all the components 
broken down into about 10 or 11 files, with one main file that coordinates everything. Using the suggestion from the py2exe 
page, my install script is simply the following:

#install.py
from distutils.core import setup
import py2exe
setup(name="webpass", scripts=["window1.py"], )

Now, this is my first time using Distutils, so maybe my install script isn't done correctly. It seems to compile all the modules we 
created ourselves when I run py2exe (I see their filenames going by on the screen during compilation).

Because the app is for Windows, I compile the exe with the following command line:

python install.py py2exe -w

When run, the final product is supposed to present a GUI written in wxPython, which accesses an Access database using 
ADODB. When we run the file without py2exe, everything works (well, mostly works, we have some small bugs here and 
there, but we at least have an alpha version running). However, when I run the py2exe created .exe file, I have problems. 

If I run the .exe on my development machine, where Python is present, the GUI comes onto the screen properly, but the 
ADODB doesn't work perfectly. For some reason, it doesn't access one field of the database. However, if I run the .exe on 
a machine without Python, the GUI doesn't come up at all. I can tell that the backround operations are doing something, 
because the .ldb file for the database is generated after I try running the .exe, but the GUI never comes on screen. 

In addition, there is a command line option which would do nothing but print one line to a standard DOS prompt, but it won't 
even print that line. Again, the backround operations work (this command line creates registry entries, and they are present 
afterwards), but there is no screen output.

One note: This program is intended to run as a COM local server (controlled by an IE comm band). Could that possibly be 
the problem? Does py2exe not take kindly to folks trying to use COM in their Python code? We're not even trying to run it 
with IE yet, there is a way to start it independently, but neither way will produce screen output on a machine that doesn't 
have Python installed.

So to sum up: The py2exe version mostly works on my development machine that has Python installed, but when tried on a 
test machine without Python, there is no screen output, but the backround activities perform properly. The development 
machine is running Win95b, and the test machine is running Win98. I am running Python2.1 to create the code, and 
py2exe 0.2.6 to create the .exe.

Any help would be GREATLY appreciated.

(Bill, if I've made any mistakes in my explanation of the program, feel free to jump in and correct me)

Jay Parlar
----------------------------------------------------------------
Software Engineering III
McMaster University
Hamilton, Ontario, Canada

"Though there are many paths
At the foot of the mountain
All those who reach the top
See the same moon."






More information about the Python-list mailing list