mod_python: änderungen werden nicht übernommen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kriza80
User
Beiträge: 3
Registriert: Dienstag 9. Oktober 2007, 10:16

hallo,


habe ein eingabeinterface (php), dass die anfrage an das form.py/start sendet
(pythonhandler mod_python.publisher).
in diesem modul werden mehrer klassen eingebunden und ausgeführt.

ändere ich eine von ihnen, werden sie nicht übernommen !!??!!
hab noch eine test.py um die klassen außerhalb eines webservers zu testen und da
funktioniert es prächtig.

google war bisher keine hilfe.
wenn man den kompletten server neustartet, werden die änderungen auch übernommen, aber
das ist in der firma definitiv nicht möglich.

hat jemand eine idee oder erfahrung mit diesem umstand?
würde mich freuen, wenn ihr mir eure kreativen ideen unterbreitet

kris
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo kriza80, willkommen im Forum,

Meine Idee: Alte ``*.pyc``-Dateien die noch rumliegen?

Aller Erfahrung nach verschwinden alle Probleme mit ``mod_python`` wenn man auf Sinnvollere Lösungen wie ``FastCGI`` etc. umsteigt. Funktioniert bei WSGI-Programmen fast ohne Aufwand.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
kriza80
User
Beiträge: 3
Registriert: Dienstag 9. Oktober 2007, 10:16

hat leider nicht funktioniert, alte pyc zu löschen und neu zu kompilieren.
war leider gezwungen den apache neu zu starten.
werd dem problem bei gelegenheit noch etwas auf den grund gehen, kann ja nicht sein, dass eine modifikation einen system neustart nachsichzieht...

danke Leonidas für die nette begrüßung ^^
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

kriza80 hat geschrieben:werd dem problem bei gelegenheit noch etwas auf den grund gehen, kann ja nicht sein, dass eine modifikation einen system neustart nachsichzieht...
Doch. Überleg mal wie der Python-Interpreter aufgebaut ist und wie mod_python funktioniert und dann stellst du fest, dass reloading in dieser Konfiguration nie richtig gut funktionieren kann.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

falls du apache nutzt probier mal

MaxRequestsPerChild 1 (http.conf)

das ist aber mit vorsicht zu genießen, vor allem falls du irgendwelche klassen benutzt die nicht davon ausgehen dauern neu geladen zu werden (singletons?)

EDIT... grade übersehen:
wenn man den kompletten server neustartet, werden die änderungen auch übernommen, aber
das ist in der firma definitiv nicht möglich.
du entwickelst die anwendung auf einem server der online ist?
dann solltest du das _nicht_ tun!
installier dir einen extra entwicklungsserver.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Jona hat geschrieben:MaxRequestsPerChild 1 (http.conf)

das ist aber mit vorsicht zu genießen, vor allem falls du irgendwelche klassen benutzt die nicht davon ausgehen dauern neu geladen zu werden (singletons?)
Und was wäre dann der Vorteil ggü. CGI? Der Nachteil ist schon mal, dass deine Server-Performance massiv einbricht, auf für statische Dateien, weil er dauernd am Neustarten ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

das geht natürlich nur auf einem entwicklungsserver, hab ich doch geschrieben...
da ist dann auch die performance egal.
afaik ist das die einzige möglichkeit zu verhindern, dass man dauernd den server neu starten muss nachdem man quellcode geändert hat.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Jona hat geschrieben:afaik ist das die einzige möglichkeit zu verhindern, dass man dauernd den server neu starten muss nachdem man quellcode geändert hat.
... WSGI + CGI/FastCGI/SCGI ...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

das heisst, wenn ich statt mod_python fastCGI nutze kann ich code ändern und ohne dass der server neu gestartet werden muss sind dei änderungen sichtbar?
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Jona hat geschrieben:das heisst, wenn ich statt mod_python fastCGI nutze kann ich code ändern und ohne dass der server neu gestartet werden muss sind dei änderungen sichtbar?
Jein, der Server muss nicht neu gestartet werden, nur das Handler-Skript.

Aber im Prinzip genau das was du willst (Handlerskript läuft unter deinem User, mit denen Rechten etc...).
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Jona hat geschrieben:das heisst, wenn ich statt mod_python fastCGI nutze kann ich code ändern und ohne dass der server neu gestartet werden muss sind dei änderungen sichtbar?
Der FastCGI-Server muss neugestartet werden, aber man kann es sogar so einstellen, dass wenn sich etwas am Timestamp des Handlerscripts ändert, dass dann das Skript automatisch neu gestartet wird.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
kriza80
User
Beiträge: 3
Registriert: Dienstag 9. Oktober 2007, 10:16

hallo.. interesante ansätze.

jedoch sind diese optionen nicht denkbar. auf dem server sind dutzende projekte und die modifikationen die ich durchführen darf sind stark eingeschränkt. zumal die applikation die ich entwickle auf python basiert und sehr komplex ist ...

ich kann es nicht ganz glauben, dass man den server neustarten muss :-)
werd mich nach meiner diplomarbeit bissl mehr damit beschäftigen. gerade hab ich leider keine zeit.. luft brennt ^^
Jona
User
Beiträge: 94
Registriert: Sonntag 23. September 2007, 23:25

warum installierst du denn nicht deinen eigenenen apache während der entwicklung?
Antworten