ImportModule (was Re: [Python-Dev] for the todo list: cStringIO uses string.joinfields)

Guido van Rossum
Sat, 13 May 2000 16:39:19 -0400

> Fredrik wrote:
> > (btw, the C API reference implies that ImportModule doesn't
> > use import hooks.  does that mean that cStringIO doesn't work
> > under e.g. Gordon's installer?)
> You have to fool C code that uses ImportModule by doing an 
> import first in your Python code. It's the same for freeze. It's 
> tiresome tracking this stuff down. For example, to use shelve:
> # this is needed because of the use of __import__ in anydbm 
> # (modulefinder does not follow __import__)
> import dbhash
> # the next 2 are needed because cPickle won't use our import
> # hook so we need them already in sys.modules when
> # cPickle starts
> import string
> import copy_reg
> # now it will work
> import shelve

Hm, the way I read the code (but I didn't write it!) it calls
PyImport_Import, which is a higher level function that *does* use the
__import__ hook.  Maybe this wasn't always the case?

--Guido van Rossum (home page: