Python Tkinter打包含有图片的exe解决方法

用Python写一个数据分析本地小软件,用Tkinter作为软件交互界面,想往交互界面加背景图片。发现用pyinstaller打包完成后自己电脑可以使用,但是拷贝到别的电脑上打开会报错,报错信息如下图所示。

在这里插入图片描述

经过多方面搜索查找,已经解决,解决方法如下:

1.环境

pycharm+anaconda

2. 图片转base64保存py文件

import tkinter as tk
import base64

# 将图片文件转换为 base64 编码
def image_to_base64(image_path):
    with open(image_path, "rb") as image_file:
        image_data = image_file.read()
        base64_encoded = base64.b64encode(image_data)
        return base64_encoded

# 图片路径
image_path = "图片1.png"

# 转换为 base64 编码
base64_image = image_to_base64(image_path)

with open("base64_image_data.py", "w") as py_file:
    py_file.write(f'base64_data = "{base64_image}"')
# 创建 tkinter 窗口
root = tk.Tk()

# 将 base64 编码数据转换为 tk.PhotoImage 对象
image = tk.PhotoImage(data=base64_image)

# 创建 Label 组件并显示图片
label = tk.Label(root, image=image)
label.pack()

root.mainloop()

上述代码将图片保存升成base64的py文件,文件名字是base64_image_data.py,打开保存的py文件如下图所示,图片的base64格式名字是base64_data。(可能大家用不同的方式保存py文件,但是注意箭头的位置,如果没有小写的b就会出错,上面的代码不会出错)。
打开base64_image_data.py文件

3.将生成.py文件放置主要py文件同一路径

主py文件的头文件加下面一句即可调用。

from base64_image_data import base64_data

现在主文件就可以调用图片的base.py格式了,如下图所示。

主文件调用图片的base64格式py文件

4.pyinstaller打包exe

pyinstaller -F -w code.py

这里的code就是主py文件,就可以打包了,第一次写博客没什么经验,有什么地方写的不好可以提意见或者私信我。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值