Mic*_*l L 7 python compiler-errors tkinter pyinstaller python-3.x
我也使用 tkinter 用 python 3.7 制作了一个程序。由于我使用的是外部图片,因此在将所有内容编译为一个 exe 时需要包含它们。我试过这样做,--add-data "bg.png;files"但我仍然收到此错误:
_tkinter.TclError:无法打开“files/bg.png”:没有这样的文件或目录
这是代码:
image = PhotoImage(file="files/bg.png")
w = image.width()
h = image.height()
x = 316
y = 246
mainGui.geometry("%dx%d+%d+%d" % (w, h, x, y))
panel = Label(mainGui, image=image)
panel.pack(side='top', fill='both', expand='yes')
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我也尝试--add-binary过,将文件添加到我的规范文件中。严重想不通!
Kam*_*mal 14
抱歉,我认为只有 -F/--one-file 会产生这种行为,但看起来任何与 pyinstaller 的捆绑都需要这样的更改。
您需要像这样更改代码,如本答案中所述:
import sys
if getattr(sys, 'frozen', False):
image = PhotoImage(file=os.path.join(sys._MEIPASS, "files/bg.png"))
else:
image = PhotoImage(file="files/bg.png")
Run Code Online (Sandbox Code Playgroud)
然后像这样将它与 pyinstaller 捆绑在一起:
pyinstaller --clean -y -n "output_name" --add-data="files\bg.png;files" script.py
Run Code Online (Sandbox Code Playgroud)