Question

Je suis en cours d'exécution Python 3.1 sous Windows et je suis en train de distribuer mon script Pygame comme un exécutable via cx_Freeze. À l'heure actuelle, il semble fonctionner, sauf que la construction exe ne peut pas charger une de mes images:

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

recherche sur Google a révélé que cela se produit lorsque la bibliothèque d'imagerie SDL ne soit pas inclus correctement. Cependant, SDL_image.dll et libpng12-0.dll sont tous les deux mis en cx_Freeze dans mon répertoire de construction, il me semble que tout devrait bien. Pourquoi ne serait-il être en mesure de charger des images PNG?

EDIT: Je « résolu » ce problème en transférant mon script Python 2.6 et d'utiliser à la place py2exe car il avait certaines fonctionnalités de toute façon que je avais besoin

.
Était-ce utile?

La solution

test par l'insertion du code de python pour afficher un message indiquant que les bibliothèques ont chargé et un autre message indiquant que leur chargement a entraîné une erreur.

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"

Autres conseils

j'ai rencontré la même question à plusieurs reprises, mais je l'ai trouvé comment y faire face.

Le problème Il semble qu'il y ait un conflit entre deux sortes de dépendances. Le fichier jpeg.dll est inclus dans le JRE (sous Windows, quelque chose comme C:\Program Files\Java\jre6\bin\), mais il est le mauvais. Il devrait être inclus dans le répertoire Pygame, situé à l'intérieur de votre installation Python, à C:\Python31\lib\site-packages\pygame\. Je ne sais pas pourquoi cx_Freeze préfère celle de JRE, mais ...

Comment résoudre ce problème? Il est assez facile. Il suffit de copier le fichier correct (celui de Pygame) dans le répertoire dans lequel vous exécutez le script cx_Freeze. Lorsque vous lancer, le script regardera dans le répertoire courant d'abord, et trouvera la jpeg.dll correcte. Votre exécutable devrait être en mesure d'importer des images PNG maintenant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top