double import protection - how to ?

Helmut Jarausch jarausch at skynet.be
Sat Nov 29 10:40:03 EST 2008


Peter Otten wrote:
> Helmut Jarausch wrote:
> 
>> I have a module which gets imported at several different places
>> not all of which are under my control.
>>
>> How can I achieve that  all/some statements within that module
>> get executed only at the very first import?
> 
> What you describe is Python's default behaviour. A module is executed once
> and then cached in sys.modules. The second import is then just a cache
> lookup. 
> 
> This may only fail if a module is imported under different names, typically
> when you have directory  in sys.path that is part of a package, or when you
> import the main script.
> 
> Peter

Thanks Steven, thanks Peter.

Then it's a problem with a problem with a webserver written in Python (Karrigell-3.0)
and probably related to multi-threading (the statements in my module get definitely
executed more than once).

Thanks for your help,
Helmut.

-- 
Helmut Jarausch

Lehrstuhl fuer Numerische Mathematik
RWTH - Aachen University
D 52056 Aachen, Germany



More information about the Python-list mailing list