8

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

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

a.datas += [('iconName.ico','DATA','C:\\Python26\\pyinstaller-1.5.1\\iconName.ico')]
4

3 回答 3

17

这是我的规范文件 ( Collector.spec),我用于一个名为"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')

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

您现在可以在您的主程序中使用 Max 在此处Collector.py所做的工作(对我来说)。

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

path = self.resource_path("logo.png")
icon = wx.Icon(path, wx.BITMAP_TYPE_PNG)
self.SetIcon(icon)

现在,当我运行时pyinstaller Collector.spec,我的 Collector App 窗口既有桌面图标又有图标。

希望这可以帮助!

于 2014-06-05T23:19:17.143 回答
5

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

python Makespec.py --icon=<FILE.ICO> yourprogram.py

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

icon=<FILE.ICO>

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

于 2012-05-21T18:06:08.763 回答
0

这条线应该加在a = Analysis(...)pyz = PYZ(a.pure)线之间。

于 2012-05-30T12:02:52.937 回答