6
votes

PY2EXE + PYWIN32 MemoryLoDloadLibrary Importions échoue lorsque Bundle_files = 1

J'ai créé un programme simple qui utilise pywin32. Je veux le déployer comme exécutable, alors je l'ai py2exe. Je ne voulais pas non plus une énorme quantité de fichiers, donc je définir bundle_files sur 1 (ce qui signifie tout ensemble ensemble). Cependant, lorsque je tente de l'exécuter, je reçois: xxx

dans mon script de configuration, j'ai essayé de faire packages = ["win32ui"] et inclut = ["win32ui"] comme options, mais cela n'a pas aidé. Comment puis-je obtenir py2exe à inclure win32ui.pyd?

Je n'ai pas ce problème si je ne le demande pas de regrouper les fichiers, je peux donc le faire, pour le moment, mais je peux aime savoir comment le faire fonctionner correctement.


1 commentaires

Notez que faire 'dll_excludes': ["mswsock.dll", "powrprof.dll"] , comme suggéré dans d'autres réponses, ne résout pas le problème.


4 Réponses :


1
votes

Êtes-vous sûr que le problème est que Win32UI.pyd n'est pas inclus? La trace de la pile n'est pas exactement la même que comme indiqué dans le wiki, mais consultez cette sortie: HTTP: //www.py2exe.org/index.cgi/py2exeandwin32ui .


3 commentaires

Je pense que c'est le cas car je reçois l'erreur de chargement DLL lorsque je n'essaie pas de regrouper les fichiers. Cela semble juste être un problème avec le groupement.


Py2exe ne fera pas de dlls externes dans les archives ou exécutables. Essayez de supprimer les fichiers MFC dans le répertoire contenant l'EXE et voyez s'il s'exécute. En tant que note latérale - Si vous n'avez pas de zipfile = Aucun, vous pouvez décompresser les archives pour voir si vos soupçons de Win32UI.PYD ne sont pas garantis sont justifiés.


.PYD Les fichiers ne sont pas des fichiers DLL externes, cependant. Il semble y inclure dans le fichier EXE, mais ils ne sont pas chargés correctement.



1
votes

Le travail autour qui a fonctionné le mieux jusqu'à présent consiste simplement à ré-implémenter les fonctions PYWIN32 à l'aide de CTYPES. Cela ne nécessite pas un autre fichier .PYD ou .dll afin que le problème soit évité.


0 commentaires

0
votes

Souhaitez-vous essayer pyinstaller ? Je l'ai utilisé à la fois sur Windows 7 et Ubuntu 10.04 et cela a fonctionné comme une magie, même lorsque j'ai compilé .PYD sur Windows.

J'ai été capable de regrouper toutes sortes d'applications que j'ai développées avec elle.


0 commentaires

-1
votes

J'ai le même problème à essayer de regrouper le pseutin avec py2exe. Voici ce que j'ai trouvé jusqu'à présent. XXX

I Obtenir cette trace lorsque Bundle_files = 3. ZipFile peut être spécifié ou peut ne pas être autre, je reçois toujours le problème.

Premièrement, je pensais que c'était une DLL manquante à cause de cette page: http://www.py2exe.org/index.cgi/problemstobefixed

J'ai copié toutes les DLL que j'ai trouvées dans Python27 dans le même répertoire que l'exécutable et ajouté que le chemin de répertoire à OS.Environ ['Path']. Cela n'a pas fonctionné.

Puis j'ai essayé d'importer mon colis directement à partir de packages de site.

J'ai remplacé l'ensemble du Sys.Path de mon exécutable compilé avec mon système normal avec mon système normal .Path

sys.path = [r'c: \ python27 \ lib \ idlelib ', ...]

Je pense que le module .pyd a été importé mais visuel c ++ jeté Ce message d'erreur vraiment laid: xxx

Je vous suggère d'essayer de remplacer l'ensemble du Sys.Path pour voir si cela fonctionne. Si c'est le cas, vous pouvez toujours faire votre seul exécutable écrire le module nécessaire dans un répertoire temporaire et l'ajouter à votre chemin. Sinon, j'ai l'impression que ce problème va être difficile à résoudre.


0 commentaires