如何将图片嵌入Python源代码,使其成为代码一部分并运行时显示?
在Python程序中嵌入图片并运行时显示的解决方案
方法1:将图片编码为Base64字符串嵌入代码
把图片转成Base64文本格式就能直接写到代码里,不需要额外携带图片文件:
- 先运行这段代码生成图片的Base64字符串:
import base64 # 替换成你的图片路径 with open("your_image.png", "rb") as img_file: base64_str = base64.b64encode(img_file.read()).decode("utf-8") print(base64_str)
- 把输出的长字符串复制到主程序中,用以下代码显示图片(依赖
pillow库,对方需执行pip install pillow):
import tkinter as tk from PIL import Image, ImageTk import base64 from io import BytesIO # 替换成你生成的Base64字符串 IMG_BASE64 = """这里粘贴你的Base64字符串""" # 解码并加载图片 img_data = base64.b64decode(IMG_BASE64) img = Image.open(BytesIO(img_data)) # 创建窗口显示 root = tk.Tk() tk_img = ImageTk.PhotoImage(img) label = tk.Label(root, image=tk_img) label.pack() root.mainloop()
如果不想依赖第三方库,可用纯tkinter(仅支持png、gif等少数格式),把加载图片的部分换成:
import tkinter as tk import base64 from io import BytesIO img_data = base64.b64decode(IMG_BASE64) root = tk.Tk() img = tk.PhotoImage(data=img_data) label = tk.Label(root, image=img) label.pack() root.mainloop()
方法2:打包成单可执行文件(适合非技术用户)
用PyInstaller把脚本和图片打包成一个exe,对方无需安装Python或依赖:
- 脚本里正常读取本地图片(确保图片和脚本同目录):
import tkinter as tk from PIL import Image, ImageTk img = Image.open("your_image.png") root = tk.Tk() tk_img = ImageTk.PhotoImage(img) label = tk.Label(root, image=tk_img) label.pack() root.mainloop()
- 安装PyInstaller:
pip install pyinstaller
- 执行打包命令(Windows用分号分隔路径,Mac/Linux用冒号):
# Windows pyinstaller --onefile --add-data "your_image.png;." show_img.py # Mac/Linux pyinstaller --onefile --add-data "your_image.png:." show_img.py
打包完成后,dist文件夹里的可执行文件就是成品,直接发给对方即可运行。
你之前尝试失败的原因
直接粘贴原始二进制数据到代码里会触发语法错误,Python无法识别原始字节流。必须把二进制转成Base64这种文本格式,才能嵌入到代码中作为字符串使用。
内容的提问来源于stack exchange,提问作者Ordeal Karisa
相关产品推荐
相关产品推荐

