Добавить изображение в файл .spec в Pyinstaller - PullRequest
6 голосов
/ 30 марта 2012

Кто-нибудь знает, как изменить файл .spec, созданный с помощью Makespec.py Pyinstaller, чтобы он включал данные изображения в каталог _MEIPASS2 Temp?Я хочу, чтобы иметь возможность добавить иконку в свой exe.Я сделал то, что написано здесь , но я просто не знаю, как добавить свои данные в .spec.

Я добавляю эту строку в конце .spec файл:

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

Ответы [ 3 ]

11 голосов
/ 06 июня 2014

Вот мой файл спецификаций (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')

Строка "a.datas += .... " чуть выше переменной pyz содержит путь к png-изображению, котороебудет отображаться в различных окнах моего графического приложения.Переменная "icon=....", установленная внутри переменной exe, содержит путь к изображению ico, которое будет отображаться на рабочем столе Windows в виде значка рабочего стола.

Теперь вы можете использовать то, что Макс сделал здесь inВаша основная программа (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.

Надеюсь, это поможет!

3 голосов
/ 21 мая 2012

Чтобы добавить значок в исполняемый файл, вам необходимо использовать следующее:

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

Или вы можете добавить следующее непосредственно к exe = EXE(...) в файле спецификации

icon=<FILE.ICO>

Это добавит файл .ico к ресурсам исполняемого файла (только для Windows) и будет отображаться как значок приложения. Используемое вами добавление a.datas добавит значок к внутренним ресурсам, к которым можно получить доступ внутри приложения через sys._meipass. Вы можете использовать это, чтобы добавить значок в верхней части главного окна, например.

0 голосов
/ 30 мая 2012

Эта строка должна быть добавлена ​​между a = Analysis(...) и pyz = PYZ(a.pure) строками.

...