2010-03-19 16 views
1

Je suis en train de compiler un script wxPython très simple dans un exécutable en utilisant PyInstaller sur Windows Vista..exe résultant de PyInstaller avec plantage wxPython

Le script Python n'est rien d'autre qu'un Hello World dans wxPython. J'essaye de faire cela en tant qu'exécutable de Windows avant que j'ajoute n'importe quelles fonctionnalités que le programme doit avoir. Mais je suis déjà coincé. J'ai parcouru quelques boucles en ce qui concerne MSVCR90.DLL, MSVCP90.DLL et MSVCPM90.DLL, que j'ai fini de copier à partir de mon installation Visual Studio (C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ redist \ x86 \ Microsoft.VC90.CRT).

Comme selon les instructions pour PyInstaller, je cours:

Command: 
Configure.py 

Output: 
I: computing EXE_dependencies 
I: Finding TCL/TK... 
I: could not find TCL/TK 
I: testing for Zlib... 
I: ... Zlib available 
I: Testing for ability to set icons, version resources... 
I: ... resource update available 
I: Testing for Unicode support... 
I: ... Unicode available 
I: testing for UPX... 
I: ...UPX available 
I: computing PYZ dependencies... 

Jusqu'à présent, si bon. Je continue.

Command: 
Makespec.py -F guitest.py 

Output: 
wrote C:\Code\PromoUSB\guitest.spec 
now run Build.py to build the executable 

Ensuite, il y a la commande finale.

Command: 
Build.py guitest.spec 

Output: 
checking Analysis 
building Analysis because out0.toc non existent 
running Analysis out0.toc 
Analyzing: C:\Python26\pyinstaller-1.3\support\_mountzlib.py 
Analyzing: C:\Python26\pyinstaller-1.3\support\useUnicode.py 
Analyzing: guitest.py 
Warnings written to C:\Code\PromoUSB\warnguitest.txt 
checking PYZ 
rebuilding out1.toc because out1.pyz is missing 
building PYZ out1.toc 
checking PKG 
rebuilding out3.toc because out3.pkg is missing 
building PKG out3.pkg 
checking ELFEXE 
rebuilding out2.toc because guitest.exe missing 
building ELFEXE out2.toc 

je reçois le résultat fichier « guitest.exe », mais lors de l'exécution, il « se bloque tout simplement » ... et il n'y a pas d'information de débogage. C'est juste un de ces accidents de Windows Vista standard.

Le script lui-même, guitest.py s'exécute tout seul. Il ne plante que comme un exécutable, et je suis complètement perdu. Je ne sais même pas quoi chercher, puisque rien de ce que j'ai essayé n'a donné de résultats pertinents.

Un autre fichier est généré à la suite du processus de compilation, appelé 'warnguitest.txt'. Voici son contenu.


W: no module named posix (conditional import by os) 
W: no module named optik.__all__ (top-level import by optparse) 
W: no module named readline (delayed, conditional import by cmd) 
W: no module named readline (delayed import by pdb) 
W: no module named pwd (delayed, conditional import by posixpath) 
W: no module named org (top-level import by pickle) 
W: no module named posix (delayed, conditional import by iu) 
W: no module named fcntl (conditional import by subprocess) 
W: no module named org (top-level import by copy) 
W: no module named _emx_link (conditional import by os) 
W: no module named optik.__version__ (top-level import by optparse) 
W: no module named fcntl (top-level import by tempfile) 
W: __all__ is built strangely at line 0 - collections (C:\Python26\lib\collections.pyc) 
W: delayed exec statement detected at line 0 - collections (C:\Python26\lib\collections.pyc) 
W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) 
W: delayed exec statement detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) 
W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) 
W: delayed __import__ hack detected at line 0 - encodings (C:\Python26\lib\encodings\__init__.pyc) 
W: __all__ is built strangely at line 0 - optparse (C:\Python26\pyinstaller-1.3\optparse.pyc) 
W: __all__ is built strangely at line 0 - dis (C:\Python26\lib\dis.pyc) 
W: delayed eval hack detected at line 0 - os (C:\Python26\lib\os.pyc) 
W: __all__ is built strangely at line 0 - __future__ (C:\Python26\lib\__future__.pyc) 
W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) 
W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) 
W: __all__ is built strangely at line 0 - tokenize (C:\Python26\lib\tokenize.pyc) 
W: __all__ is built strangely at line 0 - wx (C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\__init__.pyc) 
W: __all__ is built strangely at line 0 - wx (C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\__init__.pyc) 
W: delayed exec statement detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) 
W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) 
W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) 
W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) 
W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) 
W: delayed conditional exec statement detected at line 0 - iu (C:\Python26\pyinstaller-1.3\iu.pyc) 
W: delayed conditional exec statement detected at line 0 - iu (C:\Python26\pyinstaller-1.3\iu.pyc) 
W: delayed eval hack detected at line 0 - gettext (C:\Python26\lib\gettext.pyc) 
W: delayed __import__ hack detected at line 0 - optik.option_parser (C:\Python26\pyinstaller-1.3\optik\option_parser.pyc) 
W: delayed conditional eval hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) 
W: delayed conditional __import__ hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) 
W: __all__ is built strangely at line 0 - optik (C:\Python26\pyinstaller-1.3\optik\__init__.pyc) 
W: delayed exec statement detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 
W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) 

Je ne sais pas quoi faire de tout cela. Encore une fois, mes recherches ont été infructueuses.

+0

Un peu hors-sujet, mais puisque vous avez seulement écrit une application "bonjour, monde" dans wxPython, je l'abandonnerais et recommencerais avec PyQt. La documentation est meilleure, et le produit final global est également meilleur. –

+0

wxPython est gratuit. –

Répondre

0

J'ai trouvé la solution à ce problème sur la liste de diffusion PyInstaller, et c'est remarquablement simple, seulement non documenté.

PyInstaller ne supporte pas encore Python 2.6. La solution est d'obtenir un correctif d'une page qui peut maintenant être trouvée dans le processus de compilation que j'essayais, si l'on essaye de compiler en utilisant Python 2.6.

Merci à tous!

EDIT: La page était hébergée au http://svn.pyinstaller.org/branches/py26win mais elle n'existe plus.

+1

vous devriez mettre en place le lien – thelost

+0

Ah oui, j'aurais dû. Je l'ai oublié depuis longtemps, cependant. Merci pour le conseil, je m'en souviendrai la prochaine fois. – Teekin

+3

Il y a encore des gens qui ont ces problèmes qui aimeraient ce lien –

0

Sur Windows j'ai trouvé Py2exe pour être plus stable et plus facile à utiliser, avez-vous essayé cela.