Hi all,
I am having some troubles mixing py2exe and winxptheme. Basically,
I am using wxPython 2.7.2.0 with Python 2.5, and painting some window
background using the UxTheme via winxptheme. This is what I am doing:
hwnd = MyWindow.GetHandle()
self.hTheme = winxptheme.OpenThemeData(hwnd, "Window")
winxptheme.DrawThemeBackground(self.hTheme, dc.GetHDC(), 5, 1,
(rc.top, rc.left, rc.right, rc.bottom), None)
This works very well using python directly, but when I generate and
executable file with py2exe, I get this error when executing that last
line:
TypeError: an integer is required
This is because self.hTheme is *None*. It seems like OpenThemeData can
not be initialized in an executable, or at least that I am not able to
do it.
Does anyone have a possible solution to this problem? I have tried all
the possibilities with py2exe, meaning bundle=1, bundle=2, bundle=3,
compressed=1, compressed=2, every possible combination. But it doesn't
work :-(
I attach my setup file, if it can be of any help.
Thank you very much for every pointer.
--
Andrea.
"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.virgilio.it/infinity77/
from distutils.core import setup
import py2exe
import glob
import os
import matplotlib
import shutil
manifest = """
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
version="0.64.1.0"
processorArchitecture="x86"
name="Controls"
type="win32"
/>
<description>KPObject</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
"""
shutil.rmtree("build", ignore_errors=True)
mplfiles = glob.glob(os.sep.join([matplotlib.get_data_path(), '*']))
# Need to explicitly remove cocoa_agg nib folder or py2exe complains
mplfiles.remove(os.sep.join([matplotlib.get_data_path(), 'Matplotlib.nib']))
lst = os.listdir(os.getcwd())
incl = []
for files in lst:
if files.endswith(".py") or files.endswith(".PY"):
incl.append(files[:-3])
includes = incl
packages = ['matplotlib.numerix','pytz']
excludes = ["Tkconstants", "Tkinter", "tcl", '_gtkagg', '_tkagg']
excludes.extend(['_gtkagg','_tkagg','Tkconstants','pywin.debugger',
'pywin.debugger.dbgcon','pywin.dialogs', 'bsddb',
'curses','email','distutil','logging','readline',
'setuptools'])
dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll',
'tcl84.dll', 'tk84.dll', 'gdiplus.dll']
setup(
version = "0.1",
description = "KPObject",
name = "KPObject",
data_files = [('matplotlibdata', mplfiles)],
options = {"py2exe": {"compressed": 2,
"optimize": 1,
"includes": includes,
"excludes": excludes,
"packages": packages,
"dll_excludes": dll_excludes,
"bundle_files": 1,
}},
zipfile = None,
windows = [{"script": "KPObject.py",
"icon_resources": [(1, "icons/eni.ico")],
"other_resources": [(24,1,manifest)]}]
)
--
http://mail.python.org/mailman/listinfo/python-list