Hi Andrea,
I used GUI2Exe successfully to compile my application.
All works besides a small problem.
The application is using an ico and xrc files, and unless I put those in my Current Working Directory (CWD), my application won’t run.
I tried to add these two files in “Data Files” and “Other Resources”, but it does not work: if I delete them from the CWD, the script won’t run.
The setup file is below.
I could live with the limitation of having to copy these files to the CWD, but it would be much cleaner if they are packed into the exe file.
Any help would be appreciated.
Bye,
BR.
···
======================================================#
File automagically generated by GUI2Exe version 0.1
Andrea Gavana, 31 March 2007
======================================================#
Let’s start with some default (for me) imports…
from distutils.core import setup
import py2exe
import glob
import os
import zlib
import shutil
shutil.rmtree(“build”, ignore_errors=True)
manifest_template = “”"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> svm Program """class Target(object):
“”" A simple class that holds information on our executable file. “”"
def init(self, **kw):
“”" Default class constructor. Update as you need. “”"
self.dict.update(kw)
# for the versioninfo resources
self.version = “1.0.5”
self.company_name = “LSI”
self.copyright = “LSI 2008”
self.name = “SVM5 Parser”
Ok, let’s explain why I am doing that.
Often, data_files, excludes and dll_excludes (but also resources)
can be very long list of things, and this will clutter too much
the setup call at the end of this file. So, I put all the big lists
here and I wrap them using the textwrap module.
data_files = [(‘dpm08’, [‘C:\Documents and Settings\RBARAK\rbarak_devel\dpm08\svm_initial_splitter_windows.xrc’,
‘C:\Documents and Settings\RBARAK\rbarak_devel\dpm08\SVM.ico’])]
includes = []
excludes = [‘Tkconstants’, ‘Tkinter’, ‘_gtkagg’, ‘_tkagg’, ‘bsddb’,
‘curses’, ‘email’, ‘pywin.debugger’, ‘pywin.debugger.dbgcon’,
‘pywin.dialogs’, ‘tcl’]
packages = []
dll_excludes = [‘libgdk-win32-2.0-0.dll’, ‘libgobject-2.0-0.dll’, ‘tcl84.dll’,
‘tk84.dll’]
icon_resources = []
bitmap_resources = []
other_resources = [(24, 1, manifest_template), (2, 24, ‘C:\Documents and Settings\RBARAK\rbarak_devel\dpm08\svm_initial_splitter_windows.xrc’),
(3, 24, ‘C:\Documents and Settings\RBARAK\rbarak_devel\dpm08\SVM.ico’)]
This is a place where the user custom code may go. You can do almost
whatever you want, even modify the data_files, includes and friends
here as long as they have the same variable name that the setup call
below is expecting.
No custom code added
Ok, now we are going to build our target class.
I chose this building strategy as it works perfectly for me
test_wx = Target(
# what to build
script = “svm.py”,
icon_resources = icon_resources,
bitmap_resources = bitmap_resources,
other_resources = other_resources
)
That’s serious now: we have all (or almost all) the options py2exe
supports. I put them all even if some of them are usually defaulted
and not used. Some of them I didn’t even know about.
setup(
data_files = data_files,
options = {“py2exe”: {“compressed”: 2,
“optimize”: 1,
“includes”: includes,
“excludes”: excludes,
“packages”: packages,
“dll_excludes”: dll_excludes,
“bundle_files”: 1,
“dist_dir”: “dist”,
“xref”: False,
“skip_archive”: False,
“ascii”: False,
“custom_boot_script”: ‘’,
}
},
zipfile = None,
windows = [test_wx]
)