[PyQt] Problems using PyQt 4.7 and py2exe
Albert Cervera i Areny
albert at nan-tic.com
Thu Mar 11 23:17:20 GMT 2010
A Dijous, 4 de febrer de 2010, Albert Cervera i Areny va escriure:
> If I create the installer for my application using py2exe and PyQt 4.7, the
> application starts but fails with the following exception with QtWebKit:
>
> ImportError: DLL load failed: Can not find find the specified module.
>
> The installer works like a charm with PyQt 4.7rc2, though.
>
> The list of "system" dlls detected by py2exe is different in both versions,
> and considers QtNetwork and QtSvg as system dlls with PyQt 4.7, while it
> does *not* using rc2.
>
> Any ideas?
Answering to myself:
The problem seems to be that py2exe thinks QtNetwork.pyd, QtXmlPatterns4.dll
and QtSvg4.dll from PyQt4.7 are system libraries. The following code has fixed
the problem for me:
# Override the function in py2exe to determine if a dll should be included
dllList =
('mfc90.dll','msvcp90.dll','qtnetwork.pyd','qtxmlpatterns4.dll','qtsvg4.dll')
origIsSystemDLL = py2exe.build_exe.isSystemDLL
def isSystemDLL(pathname):
if os.path.basename(pathname).lower() in dllList:
return 0
return origIsSystemDLL(pathname)
py2exe.build_exe.isSystemDLL = isSystemDLL
--
Albert Cervera i Areny
http://www.NaN-tic.com
Mòbil: +34 669 40 40 18
More information about the PyQt
mailing list