2012-03-30 8 views
5

Kann jemand die .spec Datei ändern, die mit der Makespec.py von Pyinstaller erstellt wurde, so dass es eine Bilddaten in der _MEIPASS2 Temp dir enthält? Ich möchte ein Symbol zu meiner exe hinzufügen können. Ich habe getan, was here geschrieben ist, aber ich weiß nur nicht, wie ich meine Daten in der .spec hinzufügen.Bild zu .spec-Datei in Pyinstaller hinzufügen

Ich füge diese Zeile am Ende der Datei .spec:

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

Antwort

7

Hier ist meine Spec-Datei (Collector.spec) Ich habe für ein einfaches Python-Programm namens "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') 

Die Linie "a.datas += .... " knapp über pyz Variable enthält den Pfad Bild zu png, die auf verschiedenen Fenstern meiner GUI-Anwendung angezeigt werden. Die Variable "icon=....", die in der EXE-Variablen festgelegt ist, enthält den Pfad zu ico image, der auf dem Windows-Desktop als Desktop-Symbol angezeigt wird.

Sie können jetzt verwenden, was Max here in Ihrem Hauptprogramm (Collector.py, für mich) getan hat.

Hier ist ein Ausschnitt aus meinem Skript Collector.py, wo ich den Einsatz von Max ‚s-Code gemacht habe:

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

Nun, wenn ich pyinstaller Collector.spec laufen, habe ich beide ein Desktop-Symbol und ein Symbol für meine Collector App-Fenster.

Hoffe, das hilft!

2

ein Symbol, um die ausführbare Datei hinzuzufügen, müssen Sie Folgendes verwenden:

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

Oder Sie die folgende direkt an exe = EXE(...) in der spec-Datei

icon=<FILE.ICO> 

Dies wird ad kann hinzufügen d datei.ico zu den Ressourcen der ausführbaren Datei (nur Windows), und es wird als Anwendungssymbol angezeigt. Die von Ihnen verwendete Datei a.datas fügt den internen Ressourcen, auf die innerhalb der Anwendung über sys._meipass zugegriffen werden kann, ein Symbol hinzu. Sie können dies verwenden, um beispielsweise ein Symbol oben im Hauptfenster hinzuzufügen.

+0

Danke dafür, aber ich sprach über das Fenstersymbol, das oben links in der ausführbaren Datei angezeigt wird. Entschuldigung, ich war in meiner Beschreibung nicht klar genug. Wie auch immer, ich löste es mit der Antwort von dieser Frage: [link] (http://stackoverflow.com/questions/9929479/embed-icon-in-python-script) – maupertius

0

Diese Zeile sollte zwischen den Zeilen a = Analysis(...) und pyz = PYZ(a.pure) hinzugefügt werden.