在Pyinstaller中将图像添加到.spec文件

mau*_*ius 6 python icons pyinstaller temp

有没有人知道如何修改.spec使用Makespec.pyPyinstaller 创建的文件,使其包含_MEIPASS2Temp目录中的图像数据?我希望能够为我的exe添加一个图标.我已经完成了这里所写的内容,但我只是不知道如何添加我的数据.spec.

我在.spec文件的末尾添加了这一行:

a.datas += [('iconName.ico','DATA','C:\\Python26\\pyinstaller-1.5.1\\iconName.ico')]
Run Code Online (Sandbox Code Playgroud)

小智 12

这是我的spec文件(Collector.spec)我用于一个简单的python程序调用"Collector.py".

# -*- mode: python -*-
a = Analysis(['Collector.py'],
             pathex=['C:\\Users\\vijay\\Python\\Collector'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)
a.datas += [('logo.png','C:\\Users\\vijay\\System\\icon\\logo.png','DATA')]
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='Collector.exe',
          debug=False,
          strip=None,
          upx=True,
          console=False , icon='C:\\Users\\vijay\\System\\icon\\logo.ico')
Run Code Online (Sandbox Code Playgroud)

"a.datas += .... "pyz变量上方的行保存了png图像的路径,该路径将显示在我的GUI应用程序的各个窗口上.该"icon=...."变量的exe变量里面设置,保存路径ICO图像将显示在Windows桌面的桌面图标.

您现在可以使用马克斯做了这里在主程序(Collector.py对我来说).

这是我的脚本片段,我Collector.py使用了Max的代码:

path = self.resource_path("logo.png")
icon = wx.Icon(path, wx.BITMAP_TYPE_PNG)
self.SetIcon(icon)
Run Code Online (Sandbox Code Playgroud)

现在,当我跑步时pyinstaller Collector.spec,我有一个桌面图标和一个用于我的收藏家应用程序窗口的图标.

希望这可以帮助!


Loz*_*zer 6

要将图标添加到可执行文件,您需要使用以下命令:

python Makespec.py --icon=<FILE.ICO> yourprogram.py
Run Code Online (Sandbox Code Playgroud)

或者,您可以直接将以下内容添加到exe = EXE(...)spec文件中

icon=<FILE.ICO>
Run Code Online (Sandbox Code Playgroud)

这会将 file.ico 添加到可执行文件的资源中(仅限 Windows),并将显示为应用程序图标。您正在使用的 a.datas 附加将向内部资源添加一个图标,可以通过在应用程序内部访问该图标sys._meipass。例如,您可以使用它在主窗口顶部添加图标。