2010-12-01 4 views
2

Py2exe semble fonctionner correctement bien qu'il mentionne que quelques modules peuvent manquer. J'avais utilisé l'option windows (dans mon script py2exe) pour supprimer la fenêtre de la console mais je me suis rendu compte que le processus restait ouvert même après avoir fermé la fenêtre gui, je pouvais encore voir le processus dans le gestionnaire de tâches. .. Donc je suis passé à l'utilisation de l'option de la console et j'ai trouvé l'erreur ci-dessous imprimée là. Je crois que cette erreur empêche l'application de se fermer. En dehors de cela, l'application fonctionne bien.Erreur après la création d'exe avec Py2exe

Iv a essayé de créer un exe à partir d'une application GUI wxPython très simple, mais même alors je reçois toujours cette erreur mais je n'ai aucun problème à créer des exécutables à partir d'applications qui ne comprennent pas wxPython.

Debug: src/helpers.cpp(140): 'createActCtx' failed with error 0x0000007b (the filename, directory name, or volume label syntax is incorrect.).) 

alt text

Python: 2.6.6

wxPython: 2.8.11.0

Windows 7

py2exe: 0.6.9

# -*- coding: utf-8 -*- 


from distutils.core import setup 
import py2exe 
import glob 



excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger', 
      'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl', 
      'Tkconstants', 'Tkinter'] 

dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll', 'tk84.dll',]#'msvcp90.dll'] 

packages = []#'wx.lib.pubsub'] 


data_files = [("resources", ['resources/1187958_90214884.jpg'])] 
packages = ['wx.lib.pubsub',] 
options = {'py2exe': {'compressed': 3, 
          'optimize': 2, 
          'excludes': excludes, 
          'packages': packages, 
          'dll_excludes': dll_excludes, 
          'bundle_files': 1, 
          'dist_dir': 'dist', 
          'xref': False, 
          'skip_archive': False, 
          'ascii': False, 
          'packages': packages, 
         'custom_boot_script': '', 
         } 
       } 

#windows=[{'script':'gui.py'}] 


for script in ["gui.py"]: 
    windows=[{ 
     'script':[script] 
    }] 

    setup(options=options, console=[script], zipfile=None, data_files=data_files)       

Répondre

1

J'ai eu très peu de mal à obtenir le code wxPython pour compiler un exe en utilisant py2exe. J'ai un tutoriel que vous pouvez essayer ici:

http://www.blog.pythonlibrary.org/2010/07/31/a-py2exe-tutorial-build-a-binary-series/

J'ai eu quelques problèmes avec la nouvelle version de PubSub qui est inclus avec 2.8.11.0. Vous pouvez lire le fil ici: http://bit.ly/emoHEr

J'ai fini par revenir à la version précédente de wx ce jour principalement parce que je n'ai pas eu le temps de comprendre ce que je faisais mal. Je ne sais pas si c'est le problème que vous rencontrez.

+0

Merci mike I, j'ai essayé votre script d'installation mais j'ai toujours eu la même erreur. Je ne pense pas que son pubSub lié comme j'ai déjà fait des corrections à mon application comme indiqué ici: [http://comments.gmane.org/gmane.comp.python.py2exe/4048] (avant que je l'ai fait que py2exe ne serait pas convertir ça du tout). Après quelques déconner, j'ai réalisé que la fenêtre de la console se ferme quand la fenêtre de la console le fait quand 'wx.App .__ init __ (self)' n'est pas inclus dans la méthode 'OnInit()'. Donc, cela semble être la cause de mon problème et non l'erreur mentionnée ci-dessus. – volting

+0

Cela pose toujours un problème, car j'aime utiliser cet appel pour rediriger le sdterror vers un fichier. ie 'wx.App .__ init __ (self, redirect = Vrai, nom de fichier = appName_errors.log") ' – volting

+0

Hmmm semble avoir parlé trop tôt, j'ai maintenant ce problème aussi.' TypeError: sendMessage() prend exactement 2 arguments (3 donné) '. sont toujours en cours d'exécution' 2.8.10.1'? – volting