Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将图像添加到onefile pyinstaller可执行文件中?_Python_Tkinter_Pyinstaller - Fatal编程技术网

Python 如何将图像添加到onefile pyinstaller可执行文件中?

Python 如何将图像添加到onefile pyinstaller可执行文件中?,python,tkinter,pyinstaller,Python,Tkinter,Pyinstaller,我的pyinstaller可执行文件有问题,启动时出现以下错误: 该问题是由于exe无法找到图像文件“icon.ico”,因为pyinstaller没有将该文件打包到可执行文件中。我要问的是如何将图标打包到EXE文件中,以及打包后图标文件的目录是什么。图像文件被用作Tkinter GUI的图标 这是Tkinter应用程序的代码: app = Tk() app.title('MagnetMagnet - RARBG Scraper') app.iconbitmap(r'icon.ico') ap

我的pyinstaller可执行文件有问题,启动时出现以下错误:

该问题是由于exe无法找到图像文件“icon.ico”,因为pyinstaller没有将该文件打包到可执行文件中。我要问的是如何将图标打包到EXE文件中,以及打包后图标文件的目录是什么。图像文件被用作Tkinter GUI的图标

这是Tkinter应用程序的代码:

app = Tk()
app.title('MagnetMagnet - RARBG Scraper')
app.iconbitmap(r'icon.ico')
app.geometry('500x225')

app.mainloop()

我认为您不必在python文件中给出图标。
相反,在终端(Windows)中键入
pyinstaller-i iconfile pythonfile

一个简单的方法是保存图像的
字节,打开图像时,将图片保存在电脑中,然后使用
app.iconbitmap(r'icon.ico')

首先,使用
open
获取图像字节:

with open('icon.ico','rb') as f:
    ImageBytes = f.read()
print(ImageBytes)
# b'xxxxxxxxxxxxxxxxxx'
那么您的所有代码应该是:

ImageBytes = b'xxxxxxxxxxxxxxxxxx'
with open('icon.ico','wb') as f:
    f.write(ImageBytes)
app = Tk()
app.title('MagnetMagnet - RARBG Scraper')
app.iconbitmap(r'icon.ico')
app.geometry('500x225')
app.mainloop()

当您打开此exe文件时,它将生成一个新的
ico
图像,您可以将其删除。下次打开它时,它将再次生成一个新图像。

我运行了
pyinstaller-I icon.ico MagnetMagnet.py
,正如您所建议的,问题仍然存在。只有当我将图标文件移动到可执行文件目录中时,应用程序才会工作。请尝试
pyinstaller-F-I icon.ico MangetMagnet.py
仍然是相同的问题,我必须移动图标文件才能工作。这是一个非常简单的方法!谢谢我挠头想弄明白这个人做了什么:但你突然冲了进来,为我节省了很多时间。谢谢你这个善良的陌生人