2012-03-30 11 views
5

Qualcuno sa come modificare il file .spec creato con lo Makespec.py di Pyinstaller in modo che includa i dati di un'immagine nella dir Temp _MEIPASS2? Voglio poter aggiungere un'icona al mio exe. Ho fatto ciò che è scritto here, ma non so come aggiungere i miei dati nello .spec.Aggiungi immagine al file .spec in Pyinstaller

che sto aggiungendo questa riga alla fine del file .spec:

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

risposta

7

Ecco il file delle specifiche (Collector.spec) Utilizzato per un semplice programma python chiamato "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') 

La linea "a.datas += .... " appena sopra variabile pyz contiene il percorso png immagine che verrà visualizzato su diverse finestre della mia applicazione GUI. La variabile "icon=...." all'interno della variabile exe contiene il percorso dell'immagine ico che verrà visualizzata sul desktop di Windows come icona del desktop.

È ora possibile utilizzare ciò che Max ha fatto here nel programma principale (Collector.py, per me).

Ecco un frammento del mio script Collector.py, dove ho fatto uso del codice Max s':

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

Ora, quando corro pyinstaller Collector.spec, ho sia un'icona sul desktop e un'icona per il mio Finestre dell'app Collector.

Spero che questo aiuti!

2

Per aggiungere un'icona per il file eseguibile, è necessario utilizzare il seguente:

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

In alternativa, è possono aggiungere il seguente direttamente al exe = EXE(...) nel file spec

icon=<FILE.ICO> 

Questo annuncio volontà d il file.ico alle risorse del file eseguibile (solo Windows) e verrà visualizzato come icona dell'applicazione. L'append a.datas che si sta utilizzando aggiungerà un'icona alle risorse interne a cui è possibile accedere all'interno dell'applicazione tramite sys._meipass. Puoi usare questo per aggiungere un'icona nella parte superiore della finestra principale, per esempio.

+0

Grazie per quello, ma stavo parlando dell'icona della finestra, quella che appare in alto a sinistra dell'eseguibile. Mi spiace di non essere stato abbastanza chiaro nella mia descrizione. Comunque, l'ho risolto usando la risposta di questa domanda: [link] (http://stackoverflow.com/questions/9929479/embed-icon-in-python-script) – maupertius

0

Questa riga deve essere aggiunta tra le linee a = Analysis(...) e pyz = PYZ(a.pure).