[Python-de] Probleme mit execfile() und import's...

Peter Otten __peter__ at web.de
Don Sep 15 08:57:13 CEST 2005


Am Mittwoch, 14. September 2005 18:53 schrieb jens diemer:

> Diez B. Roggisch schrieb:
>> Ehrlich gesagt habe ich das Gefuehl das du dich da verrennst. Warum denn
>> dieser reload/exec Quasch? Wir reden hier ueber CGI-Skripte, nicht nen
>> j2ee-Appserver der >5min zum neustart braucht. Also einfach Ctrl-C, und
>> neu starten. Kostet 5s, und funzt.
> 
> Da hast du eigentlich recht, aber es ist als "Entwicklungsumgebung" für
> PyLucid ( http://www.pylucid.org ) gedacht.
> Genauer gesagt ist es für die Standalone-Version gedacht:
> http://www.pylucid.org/index.py?p=/Doku/PyLucid%20Standalone
> 
> Dabei werkelt man nicht an der Hauptdatei (index.py) sondern an
> irgendwelchen zusätzlichen Modulen...
> 
> Das ist recht nervig, wenn man immer wieder den Server neustarten muß,
> wenn man was geändert hat. Vor allem, wenn man an den Neustart nicht
> gedacht hat, kommt es zu scheinbar merkwürdigen Effekten :(
> 
> Ganz nebenbei würde man die Funktionalität vom CGIServer stark
> erweitern, wenn subprocess genommen wird, denn so erhält man theoretisch
> auch die Möglichkeit andere CGI-Skripte (außer Python) auszuführen. Was
> mich aber weniger interessiert ;)

Welches Betriebssystem verwendest Du? Das CGIHTTPServer-Modul von Python 2.4
verwendet execfile() nur im Notfall, wenn weder os.fork() noch 
os.popen2()/os.popen3() vorhanden sind.
Damit sollten unter Linux und Windows beliebige CGI-Skripte laufen und
Änderungen sofort sichtbar sein. Mac wird im Quelltext als Fall für
execfile() genannt, aber ich vermute, dass die älteren nicht BSD-basierten
Varianten gemeint sind.

Peter

PS: Habe unter Linux mit einem Perl-Skript erfolgreich getestet.