我查遍了 Google、Reddit、StackOverflow、PyInstaller 文档,但我无法弄清楚这一点。
我正在尝试为我的应用程序设置图标,但它不起作用。该图标应用于主 exe,但是,当 Windows 打开时,该图标不会显示在任务栏中。
图标已包含在内。我已经将EXE中的值图标直接设置为图标路径。我使用过 Resource Hacker,我使用过 RCEDIT,顺便说一句,它完全杀死了我的应用程序。我,为了我的一生,无法让应用程序的图标正确显示。
我尝试过 Windows 10 和 Windows 7。
即使我在没有 -F 的情况下运行 Pyinstaller,它仍然不会加载图标。我 100% 确定我的文件是 .ico 文件,并且包含多个可接受的大小,Resource Hacker 显示了 .ico 的所有可接受的大小。
这是我正在使用的powershell命令:
pyinstaller -F -i C:\aNote\theme\anoteicon.ico --clean anotemain.spec
这是我的.spec
# -*- mode: python -*-
block_cipher = None
a = Analysis(['anotemain.py'],
pathex=['C:\\aNote'],
binaries=[],
datas=[('c:\\aNote\\theme\\anoteicon.png','theme'),
('c:\\aNote\\theme\\kabook.png','theme'),
('c:\\aNote\\theme\\Python.svg.png','theme'),
('c:\\aNote\\theme\\anoteicon.ico','.'),
('c:\\aNote\\anoteui.py','.'),
('c:\\aNote\\version.txt','.')],
hiddenimports=["PyQt5.sip", "QtGui", "QtWidgets", "pyperclip", "webbrowser", "csv"],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='aNote',
debug=False,
strip=False,
upx=False,
clean=True,
runtime_tmpdir=None,
console=False,
icon='c:\\aNote\\theme\\anoteicon.ico',
version='version.txt')
在 CMD 中进入包含脚本的文件夹 (
cd /Project
)
如果您的文件夹位于 d:,首先 d:
然后 cd /Project
输入
pyinstaller -w -F -i "icon.ico" script.py
或者如果您的应用程序是控制台,那么
pyinstaller -F -i "icon.ico" script.py
你尝试过这个命令吗?
Pyinstaller.exe --onefile --windowed --icon=app.ico app.py
更新您的 .spec 文件并设置 console = True
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='aNote',
debug=False,
strip=False,
upx=False,
clean=True,
runtime_tmpdir=None,
console=True,
icon='c:\\aNote\\theme\\anoteicon.ico',
version='version.txt')
使用示例代码,您可以运行窗口 UI 而不是控制台:
from PyQt5 import QtGui
app = QtGui.QApplication([])
mainwindow = QtGui.QMainWindow()
mainwindow.show()
app.setWindowIcon(QtGui.QIcon('your.ico'))
mainwindow.setWindowIcon(QtGui.QIcon('your.ico'))
app.exec_()
我通过使用命令
-i
而不是 --icon
来解决它
python -m PyInstaller --onefile -i='.\angular.ico' --name "MyApp" ".\main.py"
简单快速的解决方案:
假设您正在使用:
Pyinstaller.exe --onefile --windowed --icon=app.ico app.py
但是 Pyinstaller 不管理任务栏图标。
替换 venv 中任务栏的图标文件,例如:
C:\python env\myproj311-32\Lib\site-packages\pygame\pygame_icon.bmp
没有额外的依赖项,无需编辑.spec