可执行文件不包含wxpython中使用的图像

时间:2012-07-27 06:20:32

标签: python wxpython py2exe

我使用python和wxpython创建了一个程序。我使用py2exe创建了一个可执行文件。它工作正常,但我使用我的公司徽标作为闪屏和印刷图纸。我不得不删除启动画面以使可执行文件工作。在错误文本文件中,我得到以下内容:

  

追踪(最近一次通话):     在OnPrintPage中的文件“printGland.pyc”,第418行     在DrawBitmap中输入“wx_gdi.pyc”,第3459行   wx._core.PyAssertionError:Cx断言“bmp.Ok()”在wxDC :: DoDrawBitmap()中的.... \ src \ msw \ dc.cpp(1181)失败:wxDC :: DrawBitmap中的无效位图

我假设bmp图像未包含在可执行文件中。代码加载后是否有问题?

 def __init__(self,parent,id):
    # Splash Screen
    image = wx.Image("Image.bmp",wx.BITMAP_TYPE_BMP)
    bmp = image.ConvertToBitmap()
    wx.SplashScreen(bmp,wx.SPLASH_CENTRE_ON_SCREEN|wx.SPLASH_TIMEOUT,1000,None,-1)
    wx.Yield()

或者当我使用py2exe时,我应该将其添加到安装文件中?关于如何纠正这种情况的任何想法?

2 个答案:

答案 0 :(得分:0)

来自reference

  

图像文件是否存在于当前工作目录中?你会   可能需要指定图像文件所在的路径   而不是像你给出的那样假设CWD。

有关更多讨论,here

答案 1 :(得分:0)

您必须确保将该文件包含在与可执行文件相同的目录中。如果你用它复制图像,它是否有效?否则,您可以使用wxPython的img2py脚本将您的图像转换为Python文件并以这种方式捆绑它。

这稍微过时了:http://www.blog.pythonlibrary.org/2008/05/23/wxpython-embedding-an-image-in-your-title-bar/

这是doc页面:http://wxpython.org/docs/api/wx.tools.img2py-module.html