Seite 1 von 1

CGI-Python debuggen

Verfasst: Freitag 18. Juli 2008, 08:23
von da.dom
HuHu... (ich mal wieder :) )

hab da ein kleines verzwicktes Problem. Ich weiss nicht ob ich es gut genug beschreiben kann, was ich will. In einem Satz:

Ich will mein WebProjekt debuggen, dessen Serverteil, in Python geschrieben und per CGI angebunden ist.

Ausfürlicher:
Folgende Situation:
Habe ein WebProjekt, bei dem ich Serverseitig Python per CGI einbinde. Clientseitig benutze ich GWT (~"Java"), jetzt habe ich in Eclipse normalerweise die Möglichkeit:

a) natürlich: meinen JavaCode zu debuggen
b) (per Plugin PyDev) meinen PythonCode zu debuggen

Wenn ich mein WebProjekt jetzt aber im DebugModus starte, kann ich meine JavaKlassen zwar debuggen, aber die in Eclipse gesetzten Haltepunkte im Python Code, werden natürlich übergangen, da er das CGI Script nicht im "DebugModus" (?) anstartet. Geht so was überhaupt irgendwie :) ?

Danke schon mal
D

Verfasst: Freitag 18. Juli 2008, 08:49
von Hyperion
Unter welchem Server läuft denn Dein Python-CGI-Script? Wenn Eclipse da keine Kontrolle drüber hat, dürfte es schwer werden aus Eclipse heraus das Debugging vorzunehmen ;-)

Verfasst: Freitag 18. Juli 2008, 08:52
von BlackJack
Debugger benutze ich bei Python gar nicht, das geht anscheinend auch vielen anderen so. Die Tracebacks und ein paar ``print``-Anweisungen eventuell in Kombination mit `repr()` reichen in der Regel aus.

Und natürlich versuche ich Code so zu schreiben, dass man ihn einfach testen kann. Also in einzelne Funktionen verpacken, die sich unabhängig vom Rest interaktiv in der Python-Shell und mit Doctests und Unittests ausführen lassen.

Verfasst: Freitag 18. Juli 2008, 10:00
von jens
Schließe mich BlackJack an ;)

Bei CGI kann man [mod]cgitb[/mod] zum debuggen nutzten... An einer passenden Stelle ein "raise" auslösen und sich den Traceback ansehen...

So richtig Spass macht das alles aber erst mit einem richtigen Traceback, wie es z.B. django bietet: http://www.djangoproject.com/documentat ... ngs/#debug

Und noch besser ist es bei Werkzeug geregelt, wo man im Traceback noch Code ausführen kann:
http://werkzeug.pocoo.org/documentation/debug
http://dev.pocoo.org/projects/werkzeug/ ... WithDjango