odbc_installer / calldll: infinite loop encountered

David dlashar at sprynet.com
Wed Feb 5 23:15:49 EST 2003


Hello.  The module, odbc_installer, looks like the perfect solution for my
need to make DSN entries (and otherwise make ODBC calls) via Python.
Unfortunately, after loading calldll, npstruct, and dynwin, I can't get
odbc_installer to import w/out errors. Typically what happens upon

from dynwin import odbc_installer

is that I get an error reporting that calldll does not have a 'load_library'
atribute. When I subsequently import calldll directly, I can see that
contrary to the error message, calldll *does* have a load_library attribute
(and from what I can tell, no other public attributes). When, after
importing calldll, I re-import odbc_installer, it loads, but it does not
expose any of its functions (e.g., config_dsn); it exposes only the modules
that it has imported, along with the INSTALLER_NAME global variable. This
tells me that the import for odbc_installer is going only so far as the line

user32 = windll.module ('user32')

If I subsequently reload odbc_installer, or if I use a module that imports
it (e.g., odbc_jet), Python launches into an infinite loop, giving the
message:

Exception exceptions.RuntimeError: 'maximum recursion depth exceeded in
<bound method module.__del__ of <win32 module 'user32' (0 functions) >>
ignored

I am running on Win2000 and am using the latest/current versions of dynwin,
calldll, and npstruct. The problem is occurring on two of my machines, one
running Python 2.2.1, the other 2.2.2. Thanks in advance for any
help/suggestions. These modules look like a perfect solution for me, so I'd
be delighted to get over this hurdle.

David






More information about the Python-list mailing list