2009-11-29 8 views
2

Je crée une application de niveau moyen en Python. Tout fonctionne bien maintenant, et j'essaye de faire de Windows un exécutable avec py2exe. L'exécutable est bien créé, mais lorsque j'essaie de l'exécuter, il échoue avec l'erreur suivante.Python py2exe - erreur de chargement de mémoire

File "zipextimporter.pyo", line 82, in load_module 
    File "ffhandler.pyo", line 33, in ? 
    File "zipextimporter.pyo", line 82, in load_module 
    File "pyAA\__init__.pyo", line 1, in ? 
    File "zipextimporter.pyo", line 82, in load_module 
    File "pyAA\AA.pyo", line 8, in ? 
    File "zipextimporter.pyo", line 82, in load_module 
    File "pyAA\pyAAc.pyo", line 5, in ? 
    File "zipextimporter.pyo", line 98, in load_module 
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd 

J'utilise pyAA dans cette application. J'ai cherché sur internet, mais je n'ai pas trouvé de solution. J'ai copié msvcp71.dll dans windows/system32, mais le problème persiste. Je l'avais résolu plus tôt (environ 7 mois en arrière), mais mon disque dur s'est écrasé et quand je tente de le recréer, je n'arrive plus à le résoudre maintenant. :-(

je serais bien obligé si quelqu'un pouvait me aider

EDIT:. Lorsque j'utilise py2exe sans option fichiers bundle, il fonctionne parfaitement mais quand j'utiliser l'option de fichier bundle, il.

J'ai essayé sans zipfile option, dans lequel il crée un library.zip avec l'exécutable.Une fois encore il a échoué.J'ai fait unzip de library.zip en utilisant 7-zip, et a constaté que _pyAAc.pyd est là dans pyAA Dans le fichier zip, cela ressemble à un problème avec la fonction memoryloadlibrary

Ried pour décompresser en utilisant la fonction Windows Unzip, il a échoué. J'ai dû utiliser 7-zip pour le décompresser. Est-ce un indice possible?

Répondre

0

vous manque une DLL dans votre build ...

Première recherche sur votre disque dur pour le fichier _pyAAC.pyd. Assurez-vous qu'il est inclus (livré) dans votre build.

Ensuite, utilisez 'dependency walker' sur le fichier .pyd (dans votre version compilée py2exe!) Pour voir ce qui est encore manquant (autres DLL qui provoquent le message MemoryLoadLibrary pour le fichier .pyd). Assurez-vous que ces dépendances sont également expédiées, ...

+0

Merci ChristopheD. Je l'ai vérifié, mais j'ai trouvé qu'il est effectivement expédié. J'ai apporté quelques modifications à ma question, s'il vous plaît voir la même chose. – Koran

+0

Je l'ai déjà vu dans le passé (certaines dll ne sont pas expédiées avec l'ensemble d'options bundle_files.) Je ne connais pas vraiment le moyen de contourner ce problème. un regard sur des alternatives: http://stackoverflow.com/questions/1689086/are-there-any-alternatives-to-py2exe (par exemple pyinstaller) – ChristopheD