1

我正在使用 PyInstaller 为我的 python 应用程序创建单个文件 exe。我还使用 Pystray 创建一个带有菜单的托盘图标。

直接运行脚本时它可以工作,但是当我使用 pyinstaller 时,我收到一个错误,即找不到“icon.png”。该文件位于我的项目目录的根目录中。

我试过 --add-data "icon.png;icon.png" 和 --add-data "icon.png;." 这些都没有帮助。

我还在几乎每个子目录中放置了 icon.png 文件的副本,只是为了看看它是否会尝试从其他地方引用它。

任何想法如何包含 png 文件

Python脚本:

from pystray import MenuItem as item
import pystray
from PIL import Image

def openConfig():
    webbrowser.open('http://localhost:5000', new=2)
def openAbout():
    webbrowser.open('http://localhost:5000/about', new=2)
def closeApp():
    os._exit(0)

image = Image.open("icon.png")
menu = (item('Configuration', openConfig), item('About', openAbout), item('Quit', closeApp))
icon = pystray.Icon("name", image, "MyApp Name", menu)

icon.run()

命令:

pyinstaller -w -F MyApp.py

或者:

pyinstall -w -F --add-data "icon.png;icon.png" MyApp.py

错误: 在此处输入图像描述

4

1 回答 1

0

我终于弄明白了。我将图像放在一个名为 static 的文件夹中,并在 python 中将代码更改为以下内容:

icon_folder = os.path.join(sys._MEIPASS, 'static')
image = Image.open(icon_folder+"\icon.png")

然后在我运行的命令中:

pyinstaller --onefile --add-data "static;static" --add-data myApp.py
于 2022-02-16T00:30:05.493 回答