【发布时间】:2020-06-18 17:13:54
【问题描述】:
我制作了一个简单的 Python3 程序,它使用 PySimpleGUI 来创建一个 Windows-GUI 程序。 该程序还包含一张图片 CAESAR.png,它与我的 python 代码位于同一文件夹中。 这是布局的部分代码:
import PySimpleGUI as sg
layout = [[sg.Image('CAESAR.png')],
[sg.Text("Geheime Nachricht in GROSSBUCHSTABEN eintippen:")],
[sg.Multiline(size=(70,4),key="GEHEIM")],
[sg.Spin([i for i in range(1,26)], initial_value=12, key="SS"), sg.Text("Schlüssel zwischen 1 und 25 wählen")],
[sg.Radio("Codieren:", "RADIO1", key="XX" ,default=True),
sg.Radio("Decodieren:","RADIO1", key="YY")],
[sg.Text("ERGEBNIS:")],
[sg.Multiline(size=(70,4),key="AUSGABE")],
[sg.Button("LOS"), sg.Button("ENDE")]]
window = sg.Window("Cäsars Geheimcode", layout)
到目前为止,这一切正常。现在我想用pysimplegui-exemaker(1.3版)制作一个windows-exe文件:
python -m pysimplegui-exemaker.pysimplegui-exemaker
当图片 CAESAR.png 与 exe 文件位于同一文件夹时,编译后的 exe 文件运行正常。如果图片与 exe 文件不在同一个文件夹中,我会收到一条错误消息。 问题:如何强制 pysimplegui-exemaker 将图片文件“嵌入”到 exe 文件中,以便该 exe 文件在同一文件夹中没有额外的 CAESAR.png 的情况下正常运行?
根据我@BhargavDesai 给出的答案和链接做了以下,以获得相对路径:
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
bild = resource_path("CAESAR.png")
不幸的是,链接给出的以下步骤对我不起作用。有什么提示吗?
【问题讨论】:
标签: pysimplegui