Pregunta

Me estoy quedando Python 3.1 en Windows y estoy tratando de distribuir mi guión Pygame como un ejecutable a través de cx_Freeze. En este momento parece estar funcionando, excepto que la acumulación exe no puede cargar cualquiera de mis imágenes:

Cannot load image: C:\path\to\build\exe.win32-3.1\resources\image.png
File is not a Windows BMP file

googlear ha revelado que esto sucede cuando la biblioteca de imágenes SDL no quede incluido correctamente. Sin embargo, SDL_image.dll y libpng12-0.dll son tanto de venta por parte cx_Freeze en mi directorio de construcción, por lo que me parece que todo debe estar bien. ¿Por qué no sería capaz de cargar las imágenes PNG?

EDIT: "resuelto" el problema por llevar mi script para Python 2.6 y usando py2exe lugar ya que tenía algunas funciones de todos modos que necesitaba

.
¿Fue útil?

Solución

Prueba mediante la inserción de un código pitón para mostrar un mensaje que indica que las bibliotecas han cargado y otro mensaje para indicar que su carga dio como resultado un error.

try:
   import SDL_image
   print "Loaded SDL_image"
except:
   print "Failed to import SDL_image"

try:
   import libpng
   print "Loaded libpng"
except:
   print "Failed to import libpng"

Otros consejos

me encontré con el mismo problema muchas veces, pero he encontrado la manera de tratar con él.

El problema Parece que hay un conflicto entre dos dependencias posibles. El jpeg.dll archivo se incluye desde el JRE (en Windows, algo así como C:\Program Files\Java\jre6\bin\), pero no es la correcta. Debe ser incluido en el directorio de Pygame, que se encuentra dentro de su instalación de Python, en C:\Python31\lib\site-packages\pygame\. No sé por qué cx_Freeze prefiere el de la JRE, aunque ...

¿Cómo solucionarlo? Es bastante fácil. Sólo tienes que copiar el archivo correcto (el de Pygame) en el directorio en el que se ejecuta la secuencia de comandos cx_Freeze. Cuando va a empezar, el script buscará en el directorio actual en primer lugar, y encontrará la jpeg.dll correcta. Su ejecutable debe ser capaz de importar imágenes PNG ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top