要将图像包含在 .exe 文件中,您需要在 .spec 文件中指定它们:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=['C:\\Python36\\Scripts'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
a.datas += [('image.png','path_to_image', "DATA")]
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='Name of your program',
debug=False,
strip=False,
upx=True,
console=False)
将其保存为 main.spec 并使用 pyinstaller main.spec 运行它
不要忘记将“image.png”替换为您的实际图像文件,并将“path_to_image”替换为图像的文件路径。另外,设置 pathex= 你的“main.py”文件所在的任何目录。
这将确保图像存储在可执行文件中。要访问它们,请将此函数添加到您的 main.py 文件中:
import os
def resource_path(relative_path):
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
然后,每次使用文件名“image.png”时,将其替换为resource_path("image.png")。