[repost] win32 debugging-- python21_d.dll not found (fwd)

Mark Hammond mhammond at skippinet.com.au
Mon Feb 4 02:45:41 EST 2002


I'm afraid this seems to be a problem with mingw rather than Python. 
All I can suggest is that you start with a trivial example - such as 
"example_nt" in the Python source distribution.  Get this working under 
mingw.  Then we can work from there to isolate the problem.

Mark.

John J. Lee wrote:
> [Sorry for repost: I left a rather long gap before replying to Mark's
> suggestion, so it probably looked like the problem had been solved, and
> I'm sure someone out there must have a clue about this.]
> 
> On Fri, 25 Jan 2002, Mark Hammond wrote:
> 
> 
>>John J. Lee wrote:
>>
>>>I compiled python21_d.dll and python21_d.exe with MSVC, and stuck the
>>>_d.dll in C:\winnt\system32 along with python.dll, and the _d.exe in
>>>C:\Python21, alongside python.exe.  When I try using python_d.exe, with an
>>>extension compiled with mingw32 against libpython21_d.a, I get a message
>>>box complaining that python21_d.dll couldn't be found, yet
>>>C:\winnt\system32 is listed in the search path given in that very message
>>>box.  Are DLLs not found by filename?  Or what?
>>>
>>Check that all dependent modules can be found.  Use the free "depends"
>>tool to determine what other DLLs have been referenced by python21_d.dll
>>are available.
>>
> 
> Well, the only direct dependencies of python21_d according to depends.exe
> are (as I'm sure you know!) standard windows dlls: kernel32, user32,
> advapi32, shell32 and msvcrtd.
> 
> However:
> 
> 1. I just realised that the error only occurs on importing the extension
>    module, not on starting python_d.exe itself, which runs quite happily
>    in interactive mode until you import _recode.
> 
> 2. If, instead of looking at the python21_d DLL, I look at _recode_d.dll
>    in depends.exe, I get a dependency on PYTHON21_D with a big question
>    mark icon to the left of it.
> 
> I was under the impression that Python on Windows resided essentially in
> the DLL.  If I have that correct, then since python_d.exe works fine in
> interactive mode presumably the problem is with the _recode module rather
> than my system setup.  Not exactly a helpful error from Windows...
> 
> So, why does depends.exe complain about _recode's dependency on
> python21_d, when it seems quite happy with python21_d itself, and when,
> what's more, they both sit in the very same directory (C:\winnt\system32)?
> I guess if I knew that I'd know why I get the error on importing _recode
> with python_d.exe.  I'm guessing this is related to the fact that the
> extension was compiled with mingw, but exactly how, I'm not sure.
> 
> The extension module in question (_recode) does import ok on windows when
> compiled against the non-debugging python, though it causes a memory
> access error on actually using it (after my little test routine finishes
> without error, around when the interpreter exits, though I don't know
> exactly when this happens, obviously, since I haven't been able to debug
> it yet).  Since this is somebody else's extension, written by someone more
> competent with C than me, and given also the fact that it works fine on
> unix, I suspect some cockup by yours truly is causing this, but what it
> might be I don't know.
> 
> I've tried both a version (of the debugging DLL and .exe) I compiled
> myself with MSVC, and using the standard distribution of debugging libs.
> I'm using the standard python.org windows Python 2.1.1 distribution.  I'm
> restricted to mingw for the extension itself because I haven't got MSVC to
> compile it yet.
> 
> The error text is as follows (typed in by hand since it seems not to be
> possible to cut-and-paste the damn thing):
> 
> The dynamic link library python21_d could not be found in the specified path
> c:\Python21\DLLs;;C:\WINNT\System32;C:\WINNT\system;C\WINNT;d:\ProgramFiles\mingw\bin;
> 
> ...etc., and from Python:
> 
> $ //c/Python21/python_d.exe
> 
> Adding parser accelerators ...
> Done.
> Python 2.1.1 (#20, Jul 20 2001, 01:19:59) [MSC 32 bit (Intel)] on win32
> Type "copyright", "credits" or "license" for more information.
> 
>>>>import _recode
>>>>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> ImportError: DLL load failed: The specified module could not be found.
> [5430 refs]
> 
> 
> Thanks for any help!
> 
> 
> John
> 
> 





More information about the Python-list mailing list