股票

pyinstaller封装图片资源失败的解决方法

发现pyinstaller在打包图片到exe程序时,无法将图片封装到exe中去,执行程序是会跳出失败提示,无法找到图片文件。以下提供解决方案:

1,首先对图片文件进行编码转换,转换成py文件。

  1. import base64
  2. def handle_gif_to_py(picture_name):
  3.     open_gif = open(“%s.gif”%picture_name, ‘rb’)
  4.     b64str = base64.b64encode(open_gif.read())
  5.     open_gif.close()
  6.     write_data = ‘img = “%s”‘% b64str.decode()
  7.     f = open(‘%s.py’ % picture_name, ‘w+’)
  8.     f.write(write_data)
  9.     f.close()
  10. if __name__==’__main__‘:
  11.     picture = [‘splash’]
  12.     for picture_position in picture:
  13.         handle_gif_to_py(picture_position)

命名为pictures.py。注意,在调试阶段,需要先执行此函数,生成 splash.py,后续处理函数才可以导入 splash。你可以打开 splash.py 文件看看,里面只有一句话,img=”XXX”.我们用的时候就是导入 img ,解码生成图片再供 exe 函数调用。

2,在工程文件中导入生成的 py 文件。

  1. import base64
  2. from splash import img as splash
  3. ……
  4. tmp = open(‘tmp.gif’, ‘wb+’)
  5. tmp.write(base64.b64decode(splash))
  6. tmp.close()
  7. gif = wx.Image(“tmp.gif”).ConvertToBitmap()

在这里 tmp.write(base64.b64decode(splash)) 就是解码生成图片,后面就是正常调用图片了。

每次执行 exe 都会自动生成一个 tmp.gif 临时图片文件供 exe 程序调用。

打赏
原文链接:,转发请注明来源!

发表评论