【问题标题】:py2exe strangley hanging with wxPython program using IEHtmlWindowpy2exe 用 IEHtmlWindow 挂在 wxPython 程序上
【发布时间】:2011-10-21 11:14:16
【问题描述】:

我有一个 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

这似乎是导致问题的原因。

有什么建议吗?

【问题讨论】:

    标签: python wxpython py2exe comtypes


    【解决方案1】:

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

    comtypes.gen._3050F1C5_98B5_11CF_BB82_00AA00BDCE0B_0_4_0

    解决方法是修补 py2exe 源代码(版本 0.6.9),正如 Erez Bibi 在他的帖子中指出的那样:

    http://groups.google.com/group/wxPython-users/browse_thread/thread/52deb8a0bc1cdc5e

    现在有了安装文件

    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']
                            }
                 },
    

    一切似乎又恢复正常了。

    【讨论】:

      【解决方案2】:

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

      from wx.lib.iewin_old import IEHtmlWindow
      

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

      【讨论】:

        猜你喜欢
        • 2011-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-31
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        相关资源
        最近更新 更多