Frage

Ich bin über eine ganze Menge Arbeit beginnen Trac Erweiterung unsere Geschäftsanforderungen anzupassen. Bisher habe ich verwendet PythonWin und NetBeans nun 6.5 als Entwicklungsumgebungen -. Beides nicht zu bieten scheint, jede mögliche Weise das Plugin von Debuggen Ich arbeite an

Ich bin völlig neu für Python so haben wahrscheinlich nicht die Entwicklungsumgebung einrichten, wie es congfigured werden könnte, um es debuggen.

Bin ich etwas fehlt offensichtlich? Es scheint ein wenig archaisch zu haben, um den Druck Debug-Meldungen an das Trac Protokoll zurückgreifen, das ist, wie ich im Moment bin Debuggen.

War es hilfreich?

Lösung

Sie können einen Wrapper wsgi Skript erstellen und es in einem Debugger ausführen. Zum Beispiel:

import os
import trac.web.main

os.environ['TRAC_ENV'] = '/path/to/your/trac/env'

application = trac.web.main.dispatch_request

from flup.server.fcgi import WSGIServer
server = WSGIServer(application, bindAddress=("127.0.0.1", 9000), )
server.run()

Sie würden dieses Skript im Debugger ausgeführt werden, und Sie können wie diese lighttpd als Frontend für die Web-Anwendung mit einem trivialen config:

server.document-root = "/path/to/your/trac/env"
server.port = 1234
server.modules = ( "mod_fastcgi" )
server.pid-file = "/path/to/your/trac/env/httpd.pid"
server.errorlog = "/path/to/your/trac/env/error.log"
fastcgi.server = ( "/" =>
  (( "host" => "127.0.0.1",
     "port" => 9000,
     "docroot" => "/",
     "check-local" => "disable",
  ))
)

Sie einfach die fcgi wsgi Wrapper im Debugger ausgeführt wird, stellen Sie die Haltepunkte in Ihrem Plugin, und öffnen Sie die Webseite.

Andere Tipps

Normalerweise wir Unit-Test zuerst.

Dann schreiben wir Log-Meldungen zu Problemen zu diagnostizieren.

Wir in der Regel hängen nicht stark auf dem Debuggen, da es oft schwierig ist, in Situationen zu tun, wo Python-Skripte in einem größeren Produkt eingebettet ist.

Ich habe festgestellt, dass Winpdb ist ein anständiger Python-Debugger.

Aber wie S.Lott weist darauf hin, Debugger Sie möglicherweise nicht sehr nützlich sein, wenn Ihr Projekt innerhalb eines größeren eingebettet ist.

Trac enthält gute Beispiele für Python-Code, es als Leitlinie werden Fehler vermeiden helfen. Nur sicher sein, Ihren Code zu testen, und es oft tun, da Sie Python neu sind ... Sie finden Sie keinen Debugger benötigen.

Für Unit-Tests Besuche PyUnit .

Ich finde es sehr nützlich, diese Phantasie Trac Message zur Laufzeit als Debug-Hilfe oder das Aufspüren, wie dies hinzuzufügen:

from trac.web.chrome import add_notice
...
def any_function_somewhere(self, req, ...anyother args...):
    ...
    var = ...some value...
    add_notice(req, "my variable value I am tracing %s" % var)

Manchmal ist es bequemer als die Protokollierung danach zu lesen. Obwohl es funktioniert nur, wenn die Funktion laufen Ihnen die req arg hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top