gpt4 book ai didi

python - pyinstaller在exe文件中添加包含图像的文件夹

转载 作者:行者123 更新时间:2023-12-03 13:43:56 24 4
gpt4 key购买 nike

我有一个名为main.py的python脚本,该脚本在images文件夹中的同一路径中使用了一些图像。

我想创建一个exe文件,其中也包含main.py脚本中使用的图像。

myprogram 
|-images_folder
|-main.py

我该怎么办?

我正在发射:
pyinstaller --onefile --windowed main.py

但是它会生成一个main.exe文件,该文件无法可视化图像,因为它们不包含在exe文件中。

最佳答案

要将图像包括在您的.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")

关于python - pyinstaller在exe文件中添加包含图像的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51264169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com