2012-03-30 95 views
5

¿Alguien sabe cómo modificar el archivo .spec creado con el Makespec.py de Pyinstaller de modo que incluya una imagen de datos en el _MEIPASS2 Temp dir? Quiero poder agregar un ícono a mi exe. He hecho lo que está escrito en here, pero simplemente no sé cómo agregar mis datos en el .spec.Agregar imagen al archivo .spec en Pyinstaller

estoy añadiendo esta línea en el final del archivo .spec:

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

Respuesta

7

Aquí está mi archivo de especificaciones (Collector.spec) Utilicé para un programa simple de Python llamado "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 línea "a.datas += .... " justo por encima de la variable pyz contiene la ruta a PNG imagen que se visualiza en varias ventanas de mi aplicación con interfaz gráfica. La variable "icon=...." dentro de la variable exe, contiene la ruta a la imagen ico que se mostrará en el escritorio de Windows como el icono del escritorio.

Ahora puede usar lo que Max ha hecho here en su programa principal (Collector.py, para mí).

Aquí hay un fragmento de mi guión Collector.py, donde he hecho uso de Código Max 's:

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

Ahora, cuando corro pyinstaller Collector.spec, tengo tanto un icono de escritorio y un icono para mi Ventana de la aplicación de recopilador.

Espero que esto ayude!

2

Para añadir un icono para el ejecutable, es necesario utilizar el siguiente:

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

O bien, puede añadir los siguientes directamente a exe = EXE(...) en el archivo de especificaciones

icon=<FILE.ICO> 

Esta voluntad anuncio d el archivo.ico a los recursos del ejecutable (solo Windows), y se mostrará como el ícono de la aplicación. El anexo a.datas que está utilizando agregará un icono a los recursos internos a los que se puede acceder desde la aplicación a través del sys._meipass. Puede usar esto para agregar un icono en la parte superior de la ventana principal, por ejemplo.

+0

Gracias por eso, pero estaba hablando del icono de la ventana, el que aparece en la parte superior izquierda del ejecutable. Lo siento, no fui lo suficientemente claro en mi descripción. De todos modos, lo resolví usando la respuesta de esta pregunta: [link] (http://stackoverflow.com/questions/9929479/embed-icon-in-python-script) – maupertius

0

Esta línea se debe agregar entre a = Analysis(...) y pyz = PYZ(a.pure) líneas.

Cuestiones relacionadas