【Python】 _tkinter.TclError: bitmap "xzw.ico" not defined

【问题描述】

       在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)此时,打包再次进行测试,上述错误就会得到解决。

 

       你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题。

  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

象在舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值