如何在pyinstaller中包含文件?

时间:2018-12-03 04:05:34

标签: python python-3.x tkinter compiler-errors pyinstaller

我也使用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')

我在做什么错?我也尝试过--add-binary,将文件添加到我的规范文件中。严重无法解决!

1 个答案:

答案 0 :(得分:0)

对不起,我认为只有-F /-一个文件会产生这种行为,但是看起来与pyinstaller捆绑在一起的任何东西都需要这种改变。

您需要像下面的answer中所述更改代码:

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")

然后将其与pyinstaller捆绑在一起,如下所示:

pyinstaller --clean -y -n "output_name" --add-data="files\bg.png;files" script.py