我在win XP SP3机器上有一个带有wxPython 2.8.12和comtypes 0.6.2依赖项的Python 2.7.2程序。我使用py2exe生成windows distributables,具有以下设置:
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
这似乎导致了这个问题。
有什么建议吗?
答案 0 :(得分:2)
解决了,问题是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']
}
},
一切似乎都再次发挥作用。
答案 1 :(得分:0)
实际上有两个版本的IEHtmlWindow。您可以尝试导入另一个:
from wx.lib.iewin_old import IEHtmlWindow
看看是否有效。如果确实如此,真棒。如果没有,那么你应该交叉发布到py2exe邮件列表和/或wxPython邮件列表。