Pyinstaller 设置图标不会改变

Posted

技术标签:

【中文标题】Pyinstaller 设置图标不会改变【英文标题】:Pyinstaller setting icons don't change 【发布时间】:2015-05-31 05:11:24 【问题描述】:

当我使用命令时:

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

所有图标都不会更改为 test.ico。一些图标保留为 pyinstaller 的默认图标。

为什么?

所有图标都在变化

Windows 7 32 位 windows 7 64bit(制作exe文件操作系统)

有些保持默认

windows 7 64bit(其他电脑)

【问题讨论】:

【参考方案1】:

我知道这是旧的等等(并且不确定这是否是一个问题),但是在搜索之后,我成功使用了 --onefile 的这个命令:

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

当我在寻找有关如何为我的 .exe 设置图标的答案时,Google 将我带到了这个页面,所以也许它会对其他人有所帮助。

这里的信息是在这个网站上找到的:https://mborgerson.com/creating-an-executable-from-a-python-script

【讨论】:

您也可以将图标添加到您的.spec 文件中,如下所示:shanetully.com/2013/08/… pyinstaller.exe --onefile --icon=app.ico helloworld.py 这对 ubuntu 中的 .sh python 脚本有效吗? 图标被windows explorer缓存。 在 windows(在文件资源管理器中)列表视图中存在错误(它显示默认的磁盘图标),但在大图标或中图标中,它显示了 pyinstaller 命令中包含的文件。【参考方案2】:

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

【讨论】:

是的,当 .exe 文件首次显示时,资源管理器似乎做了一些缓存,因此在 .exe 显示在另一个目录中之前,带有图标的重建不会反映更改。 我遇到了同样的问题。谢谢。 这里有同样的问题。关闭并重新打开窗口没有帮助,但将可执行文件复制到其他地方会显示正确的图标。 在Windows下,可以重启Windows资源管理器:任务管理器->进程->Windows进程->Windows资源管理器。单击重新启动。缓存将被清除并显示正确的图标。 谢谢你,因为我以为我做错了什么,所以让我头疼不已。愚蠢的窗户【参考方案3】:

下面的命令可以在可执行文件上设置图标。

记住“.ico”文件应该出现在“Path_of_.ico_file”中给出的路径的位置。

pyinstaller.exe --onefile --windowed --icon="Path_of_.ico_file" app.py

例如:

如果app.py 文件存在于当前目录中并且app.ico 存在于当前目录中的Images folder 中。

那么命令应该如下。最终的可执行文件会在dist folder内部生成

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

【讨论】:

【参考方案4】:

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

【讨论】:

有效,但我尝试将文件上传到谷歌驱动器上修改后的标题,下载它,然后出现默认的磁盘图标。我试图再次修改它,但图标在第二次改变。【参考方案5】:

这是在从 Python 文件创建 exe 文件时添加图标的方法

在 Python 文件所在的地方打开命令提示符

类型:

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

例子-

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

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

【讨论】:

【参考方案6】:

这是 pyinstaller 模块的错误。 东西应该是这样的吧:

File "c:\users\p-stu\appdata\local\programs\python\python38-32\lib\site-packages\PyInstaller\utils\win32\icon.py", line 234, in CopyIcons
    except win32api.error as W32E:
AttrubuteError: module 'win32ctypes.pywin32.win32api' has no attribute 'error'

【讨论】:

【参考方案7】:

如果您想设置默认图标,而不是为您设置的一个 pyinstaller,则在构建 EXE 时有一个选项,只需在命令中添加“-i NONE”即可。默认的 os 图标将应用于您的可执行文件。

pyinstaller --onefile --clean -i NONE --noconsole

参考 https://pyinstaller.readthedocs.io/en/stable/man/pyinstaller.html#windows-and-mac-os-x-specific-options

【讨论】:

【参考方案8】:

在我的情况下,文件的新图标没有显示在 dist 文件夹中,而是仅当我在桌面上移动图标时才出现。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 没错,Windows 会缓存某些文件的图标,所以如果您最初构建的 exe 没有图标,然后添加了图标,您仍然会看到 pyinstaller 的初始/默认图标。【参考方案9】:
pyinstaller --clean --onefile --icon=default.ico Registry.py

它适合我

【讨论】:

欢迎来到 SO!当回答一个已经被接受的答案(这里就是这种情况)的老问题(这个问题超过 5 年)时,请确保您的答案添加了一些基本上新的东西。没有就不要回答。

以上是关于Pyinstaller 设置图标不会改变的主要内容,如果未能解决你的问题,请参考以下文章

PyInstaller 无法更改快捷方式图标

linux下使用pyinstaller打包python脚本

PyQt5总结--打包pyinstaller

pyinstaller - 冻结应用程序时 QtWebEngineWidgets 抛出 dll 错误

如何使用pyinstaller打包python文件为exe文件

.exe 中的 VB 图标不会改变