Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] no cargan las imágenes en cx_Freeze

Estas en el tema de no cargan las imágenes en cx_Freeze en el foro de Python en Foros del Web. Bueno estoy usando el cx_Freeze para convertir un .py junto con unos .png y .mp3 a un .exe Tengo este código: Código: import sys from ...
  #1 (permalink)  
Antiguo 13/06/2015, 14:33
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
no cargan las imágenes en cx_Freeze

Bueno estoy usando el cx_Freeze para convertir un .py junto con unos .png y .mp3 a un .exe
Tengo este código:
Código:
import sys
from cx_Freeze import setup, Executable

includefiles = ["04B_30.TTF", "space_scroll.png", "boss_laser.png", "elite_laser.png", "normal_laser.png",
                "missile.png", "final_boss_sprite.png", "ship1_sprite.png", "ship1_sprite_SM.png", "Music War.mp3"]
includes = []
excludes = []
packages = ["pygame", "sys", "pygame.gfxdraw", "random"]

setup(
    name = 'Interstellar Fight',
    version = '1.0.0',
    options = {'build_exe': {'excludes':excludes,'packages':packages,'include_files':includefiles}},
    executables = [Executable('interstellar_fight.py')]
)
El build se crea perfectamente y veo que los archivos necesarios (los .png y los .mp3) están dentro junto con el .exe. El problema es que al hacer doble click en el .exe se cierra enseguida, y si lo ejecuta desde la terminal me da este error:
  #2 (permalink)  
Antiguo 13/06/2015, 19:41
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: no cargan las imágenes en cx_Freeze

mmmmm....

No parece ser tanto problema de cx_freeze, si no de tu script.

En tu includes esta: space_scroll.png
Pero en tu script esta buscando: Graphics/Background/space_scroll.png
  #3 (permalink)  
Antiguo 14/06/2015, 07:31
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: no cargan las imágenes en cx_Freeze

Bueno no se muy bien como funcionan los .exe en lo relativo a ejecutar el .py, pero creo que el error puede ser que al hacerse el build los archivos .png y .mp3 están a la misma altura que el .exe y por eso no se ejecuta, porque no encuentra ninguna carpeta que se llame "Graphics/Background".


La verdad es que ya llevo tiempo intentando encontrar una solución para poder compilar un .py con otros archivos pero sigue sin funcionar. Seguiré buscando a ver si encuentro algo.
  #4 (permalink)  
Antiguo 14/06/2015, 14:10
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: no cargan las imágenes en cx_Freeze

¿Porque no pones los archivos de la forma que esperas?

Código Python:
Ver original
  1. # Mas o menos así
  2. includefiles = [
  3.  ...
  4.  'Graphics/Background/space_scroll.png',
  5.  ...
  6. ]

De esa forma te debería de ponertelo en una carpeta, incluso puedes indicarle solo la carpeta y te deberia de copiar el arbol de directorios.

Código Python:
Ver original
  1. includefiles = [
  2.  ...
  3.  'Graphics',
  4.  ...
  5. ]
  #5 (permalink)  
Antiguo 15/06/2015, 07:19
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: no cargan las imágenes en cx_Freeze

Probé la primera manera y seguía igual, cuando llegue a casa pruebo la segunda y veo que tal.
  #6 (permalink)  
Antiguo 15/06/2015, 10:43
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: no cargan las imágenes en cx_Freeze

Perfecto! La segunda opción funciona de maravilla, si quieres probar mi juego y decirme que te parece o si encuentras algún bug...
https://mega.co.nz/#!XUQzBZSZ!QFRCy3...dJ_XToMrHOQ1O0

Dale a la Q para ver los controles.

Etiquetas: ip
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:00.