I used PyInstaller only once before, and it worked pretty directly with wxPython. I'm currently trying to create another project. The project works well when launched from the command line. However, after creating it, it never launches the main window (wxPython).
I set the debug flags and the True console in the assembly specification. I also added a verbose version ( [('v', '', 'OPTION')] ), as indicated in the PyInstaller manual. Here is the specification:
# - * - mode: python - * -
# basedir = os.path.realpath (os.path.dirname (__ file__))
basedir = os.getcwd ()
# Build the icons toc.
icons_toc = []
for dir in os.walk (os.path.join (basedir, 'icons')):
for icon in dir [2]:
icons_toc.append (
(
os.path.join ('icons', icon),
os.path.join (dir [0], icon),
'DATA',
)
)
a = Analysis (
['application.py'],
pathex = ['.', './lib', '../broadpy/lib', '../broadpy/vendor'],
hiddenimports = [],
hookspath = None
)
a.datas + = icons_toc
pyz = PYZ (a.pure)
exe = EXE (
pyz
a.scripts + [('v', '', 'OPTION')],
a.binaries,
a.zipfiles,
a.datas,
name = os.path.join (
'dist', 'Address cleaner.exe'
),
debug = True,
strip = None,
upx = True,
console = True
)
app = BUNDLE (
exe
name = os.path.join ('dist', 'Address cleaner.app')
)
Now, when I run the embedded executable, I get this output:
C: \ Users \ tomas \ Dropbox \ Broadnet \ address_cleaner> "C: \ Users \ tomas \ Dropbox \ Broadnet \ address_cleaner \ dist \ Address cleaner.exe"
_MEIPASS2 is NULL
archivename is C: \ Users \ tomas \ Dropbox \ Broadnet \ address_cleaner \ dist \ Address cleaner.exe
Extracting binaries
Executing self as child with Setting up to run child
Creating child process
Waiting for child process to finish ...
_MEIPASS2 is C: / Users / tomas / AppData / Local / Temp / _MEI30762 /
archivename is C: \ Users \ tomas \ Dropbox \ Broadnet \ address_cleaner \ dist \ Address cleaner.exe
Already in the child - running!
manifestpath: C: / Users / tomas / AppData / Local / Temp / _MEI30762 / Address cleaner.exe.manifest
Activation context created
Activation context activated
C: /Users/tomas/AppData/Local/Temp/_MEI30762/python27.dll
Manipulating evironment
PYTHONPATH = C: / Users / tomas / AppData / Local / Temp / _MEI30762; C: / Users / tomas / Dropbox / Broadnet / address_cleaner / dist
PYTHONHOME = C: / Users / tomas / AppData / Local / Temp / _MEI30762 /
v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
importing modules from CArchive
import marshal # builtin
extracted iu
import imp # builtin
import nt # builtin
extracted struct
import _struct # builtin
extracted archive
Installing import hooks
out00-PYZ.pyz
Running scripts
import zlib # builtin
import errno # builtin
import _weakref # builtin
import _codecs # builtin
import _sre # builtin
import _collections # builtin
import operator # builtin
import itertools # builtin
import _bisect # builtin
import _heapq # builtin
import thread # builtin
import math # builtin
import binascii # builtin
import _hashlib # dynamically loaded from C: \ Users \ tomas \ AppData \ Local \ Temp \ _MEI30762 \ _hashlib.pyd
import _random # builtin
import cStringIO # builtin
Traceback (most recent call last):
File "", line 65, in
File "C: \ Users \ tomas \ Downloads \ pyinstaller-2.0 \ PyInstaller \ loader \ iu.py", line 386, in importHook
File "C: \ Users \ tomas \ Downloads \ pyinstaller-2.0 \ PyInstaller \ loader \ iu.py", line 480, in doimport
File "C: \ Users \ tomas \ Dropbox \ Broadnet \ address_cleaner \ build \ pyi.win32 \ buildspec \ out00-PYZ.pyz \ win32com", line 5, in
File "C: \ Users \ tomas \ Downloads \ pyinstaller-2.0 \ PyInstaller \ loader \ iu.py", line 386, in importHook
File "C: \ Users \ tomas \ Downloads \ pyinstaller-2.0 \ PyInstaller \ loader \ iu.py", line 459, in doimport
File "C: \ Users \ tomas \ Downloads \ pyinstaller-2.0 \ PyInstaller \ loader \ iu.py", line 248, in getmod
File "C: \ Users \ tomas \ Downloads \ pyinstaller-2.0 \ PyInstaller \ loader \ iu.py", line 105, in getmod
ImportError: DLL load failed: The specified module could not be found.
RC: -1 from pyi_rth_win32comgenpy
OK
Deactivating activation context
Releasing activation context
Done
# clear __builtin __._
# clear sys.path
# clear sys.argv
# clear sys.ps1
# clear sys.ps2
# clear sys.exitfunc
# clear sys.exc_type
# clear sys.exc_value
# clear sys.exc_traceback
# clear sys.last_type
# clear sys.last_value
# clear sys.last_traceback
# clear sys.path_hooks
# clear sys.path_importer_cache
# clear sys.meta_path
# clear sys.flags
# clear sys.float_info
# restore sys.stdin
# restore sys.stdout
# restore sys.stderr
# cleanup __main__
# cleanup [1] cStringIO
# cleanup [1] __future__
# cleanup [1] _collections
# cleanup [1] encodings
# cleanup [1] site
# cleanup [1] atexit
# cleanup [1] shutil
# cleanup [1] _heapq
# cleanup [1] _weakref
# cleanup [1] abc
# cleanup [1] _bisect
# cleanup [1] _weakrefset
# cleanup [1] tempfile
# cleanup [1] binascii
# cleanup [1] sre_constants
# cleanup [1] collections
# cleanup [1] _codecs
# cleanup [1] _warnings
# cleanup [1] math
# cleanup [1] operator
# cleanup [1] fnmatch
# cleanup [1] codecs
# cleanup [1] re
# cleanup [1] _struct
# cleanup [1] thread
# cleanup [1] keyword
# cleanup [1] signal
# cleanup [1] random
# cleanup [1] itertools
# cleanup [1] encodings.aliases
# cleanup [1] exceptions
# cleanup [1] heapq
# cleanup [1] sre_compile
# cleanup [1] _sre
# cleanup [1] _random
# cleanup [1] hashlib
# cleanup [1] bisect
# cleanup [1] sre_parse
# cleanup [1] _hashlib
# cleanup [2] copy_reg
# cleanup [2] iu
# cleanup [2] os.path
# cleanup [2] archive
# cleanup [2] struct
# cleanup [2] errno
# cleanup [2] imp
# cleanup [2] _abcoll
# cleanup [2] ntpath
# cleanup [2] nt
# cleanup [2] genericpath
# cleanup [2] stat
# cleanup [2] zipimport
# cleanup [2] warnings
# cleanup [2] UserDict
# cleanup [2] types
# cleanup [2] zlib
# cleanup [2] linecache
# cleanup [2] os
# cleanup [2] marshal
# cleanup sys
# cleanup __builtin__
# cleanup ints: 41 unfreed ints
# cleanup floats: 31 unfreed floats
Back to parent ...
Freeing status for C: \ Users \ tomas \ Dropbox \ Broadnet \ address_cleaner \ dist \ Address cleaner.exe
So now I see an exception to iu.py there, but I still don't know why. I also find it rather cryptic that the python file in my Downloads / py-installer folder is running, even if I delete this folder.
So, to summarize - what steps should I take to find out why the application crashes on startup?
I am using PyInstaller 2.0 with Python 2.7.3 on Windows 8. None of these facts cause this error, since I am successfully creating another project.