用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就会出错,上面的代码不会出错)。
3.将生成.py文件放置主要py文件同一路径
主py文件的头文件加下面一句即可调用。
from base64_image_data import base64_data
现在主文件就可以调用图片的base.py格式了,如下图所示。
4.pyinstaller打包exe
pyinstaller -F -w code.py
这里的code就是主py文件,就可以打包了,第一次写博客没什么经验,有什么地方写的不好可以提意见或者私信我。