I found a reference on the mailing list from a year ago with a similar problem: I was trying to distribute a Python 2.7 app that used a library with a newer Microsoft.VC90.CRT DLL than python was compiled with -- the other package required the MSVC 2008 SP1 library. Pyinstaller 2.1 created a bundle, but attempting to run on other machines results in messages like:
ImportError: DLL load failed: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail. Assemblies, SxS, manifests... All this strange stuff, but finally found a comment at the bottom of a MSDN page http://msdn.microsoft.com/en-us/library/aa374182.aspx that said that DLLs can use application config files telling it to look for newer versions of the DLL. Pyinstaller placed the Microsoft.VC90.CRT.manifest in the dist directory, using the msvcr*dll version 9.0.21022 that Python was compiled with. (Interestingly, it finds the assembly for the MSVC 2008 SP1 sxs library, but doesn't include it.) So, basically you can force an app to look for the latest CRT by including some extra config files. It now works on a target machine that didn't have the MSVC 2008 SP1 by doing the following: 1. replacing the contents of Microsoft.VC90.CRT.manifest with the contents of the manifest from the MSVC 2008 SP1 SxS install 2. replacing the msvc*90.dll files in the dist directory with the dlls from the MSVC 2008 SP1 SxS install 3. changing the .exe.manifest to point to the newest CRT 4. adding a .exe.config file along side the executable 5. adding .dll.2.config file along side the offending dll The location of the newest dlls and manifest is somewhere in the C:/Windows/WinSxS folder; mine was amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251.manifest Maybe this will help somebody... I've included my config files & manifest as examples and the pyinstaller log showing that it did find the other (newest) assembly but didn't include it in the dist. Rob -- You received this message because you are subscribed to the Google Groups "PyInstaller" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pyinstaller. For more options, visit https://groups.google.com/d/optout.
gdal111.dll.2.config
Description: Binary data
run.exe.manifest
Description: Binary data
run.exe.config
Description: Binary data
