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

Reply via email to