【问题描述】
在Python中可以使用pyinstaller命令将.py文件打包成.exe文件,但是成功打包成.exe文件后,在Windows系统上运行却出现了如下错误:
_tkinter.TclError: bitmap "xzw.ico" not defined
【问题原因】
出现这个错误的原因是因为在我们的.py文件中引入了外部图片,打包成.exe文件放到桌面上运行,在同一目录下没有找到该图片。
【解决办法】
此处提供两种解决办法:
1、将图片放到指定位置,例如:程序中图片的位置目录修改成如下:
root.iconbitmap('C://Users//Machenike//Desktop//picture.ico')
相应的将picture.ico图片也要放到桌面上,这样这个报错就会解决。此方法比较简单实用,但是有时候我们打包成.exe文件后并不希望再有额外的图片或文件,这样使用起来也会比较麻烦,于是这里提供另外一种方法。
2、对图片进行base64转码操作。
(1)将需要引入的图片进行base64转码,并保存成另外一个.py文件
-
# base64转码,将转码后的文件存入icon.py中
-
open_icon = open(
"xzw.ico",
"rb")
-
b64str = base64.b64encode(open_icon.read())
-
open_icon.close()
-
write_data =
"img = %s" % b64str
-
f = open(
"icon.py",
"w+")
-
f.write(write_data)
-
f.close()
(2)引入保存的.py文件,并进行解码添加图片操作
-
from compressed_software.icon
import img
-
-
# 读取base64转码后的数据,并设置压缩图标
-
picture = open(
"picture.ico",
"wb+")
-
picture.write(base64.b64decode(img))
-
picture.close()
-
root.iconbitmap(
'picture.ico')
-
os.remove(
"picture.ico")
(3)此时,打包再次进行测试,上述错误就会得到解决。
你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。
转载:https://blog.csdn.net/gdkyxy2013/article/details/103755124
查看评论