Pyinstaller设置图标无法更改

76

当我使用以下命令时:

pyinstaller.exe --icon=test.ico -F --noconsole test.py

所有图标都没有变成test.ico。有些图标仍然是pyinstaller的默认图标。

为什么?

所有图标都变了:

  • Windows 7 32位
  • Windows 7 64位(制作exe文件的操作系统)

有些仍然是默认的:

  • Windows 7 64位(其他电脑上)
12个回答

123

我知道这已经过时了,不太确定它是否是一个问题,但是在搜索后,我成功地使用了以下命令来处理--onefile

我知道这个问题可能已经很老了,但是在搜索之后,我用以下命令成功地解决了--onefile的问题:

pyinstaller.exe --onefile --windowed --icon=app.ico app.py

我搜索如何为我的 .exe 设置图标时,谷歌把我带到了这个页面,也许会有所帮助。

这里的信息来源于该网站:https://mborgerson.com/creating-an-executable-from-a-python-script


8
您可以像此处所示一样将图标添加到您的 .spec 文件中:https://shanetully.com/2013/08/cross-platform-deployment-of-python-applications-with-pyinstaller/ - erb
pyinstaller.exe --onefile --icon=app.ico helloworld.py 这个命令对我不起作用。我做错了什么? - anandhu
这个在Ubuntu上的 .sh Python脚本可以工作吗? - user13713033
7
Windows资源管理器会缓存图标。 - Pedro Lobito
3
在Windows的文件浏览器中以列表视图查看时,存在一个错误(显示默认的软盘图标),但在大图标或中等图标视图中,它会显示使用pyinstaller命令包含的文件。 - Chris P

61

我认为这可能与缓存有关(可能是在Windows资源管理器中)。我发现在一些地方仍然显示旧的PyInstaller图标,但当我将exe文件复制到其他位置时,所有旧的图标都消失了。


7
看起来 Explorer 在首次显示 .exe 文件时会进行一些缓存,因此使用一个带有图标的重新构建并不会反映出更改,直到该 .exe 文件在另一个目录中被显示。 - Jonas Byström
我也遇到了同样的问题。谢谢。 - SaundersB
3
这里也遇到了相同的问题。关闭和重新打开窗口没有帮助,但将可执行文件复制到其他地方将显示正确的图标。 - I_Ridanovic
3
在Windows中,您可以重新启动Windows资源管理器:任务管理器->进程->Windows进程->Windows资源管理器。单击“重新启动”。这将清除缓存并显示正确的图标。 - Chris Collett
谢谢你,这救了我一大堆麻烦,因为我以为自己做错了什么。愚蠢的Windows。 - Kevin Pauli
太好了!我也遇到了同样的问题,现在已经解决了。 - Kurdish Learner

17

以下命令可以为可执行文件设置图标。

请注意,在“Path_of_.ico_file”的路径处应存在“.ico”文件。

pyinstaller.exe --onefile --windowed --icon="Path_of_.ico_file" app.py
例如: 如果当前目录中存在app.py文件,并且Images文件夹内存在app.ico文件。 那么应该执行以下命令。最终的可执行文件将生成在dist文件夹中。
pyinstaller.exe --onefile --windowed --icon=Images\app.ico app.py

10

我有类似的问题。如果pyinstaller没有报错,请尝试更改.exe文件的名称。这对我有效。


可以运行,但我尝试使用修改后的标题将文件上传到Google Drive,下载后出现了默认的磁盘图标。我尝试再次修改它,但第二次更改时图标发生了变化。 - Chris P
2
@ChrisP 这是由于 Windows 图标缓存的原因。请查看 https://superuser.com/a/499079/357349。 - Dwza

5

4

以下是将Python文件转换为exe文件时如何添加图标的方法

  • open command prompt at the place where Python file exist

  • type:

    pyinstaller --onefile -i"path of icon"  path of python file
    

示例-

pyinstaller --onefile -i"C:\icon\Robot.ico" C:\Users\Jarvis.py

这是添加图标最简单的方法。


2

1
在我的情况下,文件的新图标没有出现在dist文件夹中,只有当我将图标移动到桌面上时才出现。

1
你的回答可以通过提供额外的支持信息来改进。请编辑以添加更多详细信息,如引用或文档,以便他人确认您的答案是否正确。您可以在帮助中心中找到有关编写良好答案的更多信息。 - Community
1
是的,Windows会缓存某些文件的图标,因此如果您最初构建exe时没有设置图标,然后添加了图标,您仍将从pyinstaller看到初始/默认图标。 - Arise

1

非常老的问题。我遇到了同样的问题,但还有其他问题,例如即使更改入口文件并停止在INFO: Checking EXE处,也无法真正构建应用程序。

我通过删除pyinstaller生成的app.specbuild文件夹来解决这个问题。

图标已经更新(请参见左上角的应用程序图标),窗口只是缓存它。


0
有时候,窗口没有清除缓存。
需要在命令提示符下运行此脚本。
taskkill /IM explorer.exe /F CD /d %userprofile%\AppData\Local DEL IconCache.db /a explorer.exe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接