Tracking down DLL load errors in Windows ?

Mark Tolonen metolone+gmane at gmail.com
Sat Oct 17 02:33:12 EDT 2009


"Fred P" <xnews2 at fredp.lautre.net> wrote in message 
news:Xns9CA5E52BEC783PaCmAnRDLM at 212.27.60.39...
> Hi, a bit of platform-specific advice sought here... I'm trying to 
> diagnose
> one of those mysteries Windows is so fond of...
>
> Say that I have code that imports some binary Python module from site-
> packages (in this case, libpyexiv2.pyd through pyexiv2.py, could be 
> anythng
> else).
>
> On three Windows boxes I've tried it (XP Pro or Home, Python 2.5)
> everything works fine. On a fourth, importing the module fails with a
> traceback like this :
>
> Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "c:\python\lib\site-packages\pyexiv2.py", line 60, in <module>
>    import libpyexiv2
> ImportError: DLL load failed: This application could not start
> because its configuration is incorrect. Reinstalling it might solve
> the problem.
>
> I have tried long and hard to spot a meaningful difference between the
> first three systems and the last, without success.
>
> Is there any tool and/or methodology I could use to at least pinpoint the
> exact DLL that libpyexiv2 is failing to load, and ideally also the reason
> why ?...

That error message is returned from executables built with later versions of 
Visual Studio (at least 2005 and 2008...not sure about 2003).  The Windows 
application event log will indicate what DLL is missing.

In addition to tools others have noted, depends.exe (comes with VS2005...was 
removed in VS2008 for unknown reasons) will list the DLLs required by an 
executable.  Another Visual Studio tool, "dumpbin /imports <target>" works, 
too.

-Mark





More information about the Python-list mailing list