Domanda

Io corro Python 3.1 su Windows e sto cercando di distribuire il mio script Pygame come un eseguibile tramite cx_Freeze. In questo momento sembra funzionare, tranne che l'accumulo exe non può caricare qualsiasi delle mie immagini:

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

Googling ha rivelato che questo accade quando la libreria di immagini SDL non viene incluso in modo corretto. Tuttavia, SDL_image.dll e libpng12-0.dll sono entrambi put da cx_Freeze nella mia cartella di compilazione, quindi mi sembra che tutto dovrebbe andare bene. Perché non dovrebbe essere in grado di caricare le immagini PNG?

EDIT: Ho "risolto" il problema porting mio script di Python 2.6 e utilizzando py2exe invece quanto aveva alcune funzionalità in ogni caso che avevo bisogno

.
È stato utile?

Soluzione

Prova con l'inserimento di un codice python per visualizzare una messaggio che indica che le biblioteche hanno caricati e un altro messaggio per indicare che la loro sistemazione ha provocato un errore.

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"

Altri suggerimenti

ho incontrato lo stesso problema molte volte, ma ho trovato il modo di affrontarlo.

Il problema Sembra che ci sia un conflitto tra due possibili dipendenze. Il jpeg.dll file viene incluso dal JRE (su Windows, qualcosa come C:\Program Files\Java\jre6\bin\), ma è quello sbagliato. Dovrebbe essere inclusa dalla directory Pygame, che si trova all'interno della vostra installazione di Python, a C:\Python31\lib\site-packages\pygame\. Non so perché cx_Freeze preferisce quello del JRE, anche se ...

Come risolvere il problema? E 'abbastanza facile. Basta copiare il file corretto (quello da Pygame) nella directory in cui si esegue lo script cx_Freeze. Quando si inizierà esso, lo script cercherà nella directory corrente prima, e troverà la jpeg.dll corretta. Il tuo eseguibile deve essere in grado di importare immagini PNG ora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top