pyinstaller打包GUI时附带图片或GIF
跟着我的操作一步一步来
第一步: 将需要打包的图片或者GIF先读取,然后再写入至一份.py文件内。(没有看错,写入.py文件内,不是txt)注意:以下代码是临时用的,不需要写入到工程内部。
# pic_to_py.py
import base64
with open('./img.gif', 'rb') as f:
a = base64.b64encode(f.read())
b = 'img = {}'.format(a.decode()) # 别忘了这一行
with open('./tmp.py', 'w+') as f:
f.write(b)
第二步:在工程代码文件所在的文件夹内新建一份文件夹“tempZKDIMG”(命名随意),将第一步生成的./tmp.py文件放在该文件夹下
第三步:见以下代码。注意:以下代码是需要写到你的工程里面的。
from tempZKDIMG.tmp import img as zIMG
with open('tmp.gif', 'wb+') as Img: # 注意:此处不要写绝对路径,写tmp.gif就可以了!这个只是一份临时文件
Img.write(base64.b64decode(zIMG))
# tmp.gif为每一次执行exe生成的图片文件
bg_img = ImageTk.PhotoImage(Image.open('tmp.gif'))
注意:
- 使用此方法封装exe后,每一次执行都会在exe所在的路径下生成一份tmp.gif文件。
- 可以使用os.path.dirname(os.path.realpath(sys.executable)+‘tmp.gif’)获取到绝对路径,使用shutil.remove()删除即可。