使用IEHtmlWindow与wxPython程序一起使用py2exe绞死

使用IEHtmlWindow与wxPython程序一起使用py2exe绞死,python,wxpython,py2exe,comtypes,Python,Wxpython,Py2exe,Comtypes,我有一个Python 2.7.2程序,在win XP SP3机器上有wxPython 2.8.12和comtypes 0.6.2依赖项。我使用py2exe通过以下设置生成windows可分发文件: setup( options = { "py2exe": { "packages": ['wx.lib.pubsub'] } }, windows = [ {

我有一个Python 2.7.2程序,在win XP SP3机器上有wxPython 2.8.12和comtypes 0.6.2依赖项。我使用py2exe通过以下设置生成windows可分发文件:

setup(
    options = {
        "py2exe": {
                   "packages": ['wx.lib.pubsub']
                  }
    },
   windows = [
       {
           "script" : "entry.py",
       }
   ],
   data_files=[("bitmaps", ["../resources/icons/app_big.png",
                            "../resources/icons/app_medium.png",
                            "../resources/icons/app_small.png",
                            "../resources/icons/app_small_new.png",
                            "../resources/icons/app_small_bad.png",
                            "../resources/icons/cross_hover.png",
                            "../resources/icons/cross.png",
                            "../resources/icons/delete.png",
                            "../resources/icons/refresh.png",])]
)
我也在使用IEHtmlWindow控件

发生的情况是,每当我在Python控制台发出命令时,py2exe都会运行一秒钟,输出如下:

运行py2exe *搜索所需模块*

然后无限期地挂起,直到我按下Ctr+z

我已追踪到导入的问题:

从wx.lib.iewin导入IEHtmlWindow

这似乎是造成问题的原因


有什么建议吗?

IEHtmlWindow实际上有两个版本。您可以尝试导入另一个:

from wx.lib.iewin_old import IEHtmlWindow

看看这是否有效。如果是的话,那就太棒了。如果没有,那么您可能应该交叉发送到py2exe邮件列表和/或wxPython邮件列表。

解决了,问题是comtypes生成了一个非常大的模块文件,py2exe花了太多时间来解析该文件:

comtypes.gen._3050F1C5_98B5_11CF_BB82_00AA00BDCE0B_0_4_0

解决方法是修补py2exe源代码(版本0.6.9),正如Erez Bibi在其文章中指出的:

现在是安装文件

options={
             "py2exe": {
                        'packages': ['wx.lib.pubsub'],
                        'includes': ['comtypes.gen._3050F1C5_98B5_11CF_BB82_00AA00BDCE0B_0_4_0'],
                        'skip_scan': ['comtypes.gen._3050F1C5_98B5_11CF_BB82_00AA00BDCE0B_0_4_0']
                        }
             },
一切似乎又恢复了正常