[Python-de] reimport über __import__

Alexander 'boesi' Bösecke boesi.josi at gmx.net
Mon Jul 10 09:54:34 CEST 2006


Hi

Am 03.07.2006 16:11:45 schrieb Martin v. Löwis:

> Alexander 'boesi' Bösecke wrote:
> > Ok und wie erreicht man das genaue Gegenteil? Bei einem Reimport soll
> > also das Modul erneut initialisiert werden, so als wäre es noch nicht
> > importiert worden.
> 
> Dazu kannst Du reload() verwenden.

Tja wie schon einige andere geschrieben haben, ist reload leider nicht
immer die richtige Wahl. Konkret in meinem Fall bedeutet das, dass die
von pyVideo importierten Module CRImage und/oder RImageSDLc nicht
ebenfalls reimportiert werden. 

Ich hab das jetzt folgendermaßen gelöst:
        fp, pathname, description = imp.find_module('WebCap')
        wc = imp.load_module('WebCap', fp, pathname, description)
        
Laut Doku soll zwar load_module das selbe wie reload tun, aber der obige
Code funktioniert im Gegensatz zu reload. Es gibt nur ein Problem, wenn
ich das mit pyexe kompiliere, wird beim Ausführen gemeckert, dass WebCap
nicht gefunden wird.

> Das erscheint mir falsch; es sollte einen anderen Weg geben, pyVideo
> zu konfigurieren (also nicht durch import, sondern nachträglich).

Da stimme ich dir auf jeden Fall zu, aber zumindest ist so eine
Konfigurationsmöglichkeit nicht dokumentiert.

Ich werde mich mit dem allen noch intensiver beschäftigen. Meine Mail
hier war eher eine spontane Reaktion auf das Thema, in der Hoffnung dass
es eine einfache Lösung gibt, die über reload hinausgeht.


cu boesi




More information about the python-de mailing list