I built the small application using PyQt and made it executable setup with py2exe. Its all good in my laptop, but when I try to distribute the application to other machines, its not able to open, giving following error in .log file.
Traceback (most recent call last):
File "viewer.py", line 5, in <module>
File "PyQt4\QtCore.pyo", line 12, in <module>
File "PyQt4\QtCore.pyo", line 10, in __load
ImportError: DLL load failed: %1 is not a valid Win32 application.
I tried a lot but not able to get this resolve. Please help me !!
EDIT :
Here is the setup.py
#!/usr/bin/python
import sys
#C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91
#sys.path.append("C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\redist\\x86\\Microsoft.VC90.CRT")
import warnings
warnings.filterwarnings(action="ignore", message='the sets module is deprecated')
from distutils.core import setup
import py2exe
manifest = '''
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
version="0.64.1.0"
processorArchitecture="x86"
name="Controls"
type="win32"
/>
<description>Your Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
'''
'''
installs manifest and icon into the .exe
but icon is still needed as we open it
for the window icon (not just the .exe)
changelog and logo are included in dist
'''
sys.path.append('C:\\WINDOWS\\WinSxS\\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91')
excludes = ["pywin", "pywin.debugger", "pywin.debugger.dbgcon",
"pywin.dialogs", "pywin.dialogs.list"]
setup(
#options = {"py2exe": {"includes":["sip"],"dll_excludes": ["MSVCP90.dll"]}},
options = {"py2exe": {"typelibs":
# typelib for WMI
[('{565783C6-CB41-11D1-8B02-00600806D9B6}', 0, 1, 2)],
# create a compressed zip archive
"compressed": 1,
"optimize": 2,
"excludes": excludes,
"includes":["sip","PyQt4"]}},
# The lib directory contains everything except the executables and the python dll.
# Can include a subdirectory name.
zipfile = "lib/shared.zip",
windows = [
{
"script": "viewer.py",
#"icon_resources": [(1, "favicon.png")],
#"other_resources": [(24,1,manifest)]
}
],
data_files=["msvcm90.dll","msvcp90.dll","msvcr90.dll"]
)
You should post your setup.py so we can take a look at it. Anyhow, something to this effect should work for your py2exe setup.py. You might have to adjust the bundle_files and zipfile parameters to work with our setup. Make sure to replace ‘insert qt path here’ with the proper path for the QT dll’s and enter the actual QT dll names for ‘a.dll’, ‘b.dll’, ‘c.dll’, …
setup.py: