我该如何调试Trac插件?
我即将开始大量工作,把Trac扩展到符合我们业务需求的样子。到目前为止,我使用过pythonWin,现在用的是Netbeans 6.5作为开发环境——这两个环境似乎都没有提供调试我正在开发的插件的方法。
我对Python完全是新手,所以可能没有把开发环境设置好,导致无法进行调试。
我是不是漏掉了什么明显的东西?现在我只能通过打印调试信息到Trac日志来调试,这感觉有点过时。
5 个回答
0
Trac里面有很多不错的Python代码示例,参考这些示例可以帮助你避免一些错误。记得要经常测试你的代码,特别是你刚开始学Python的时候……你会发现其实不需要调试工具。
如果你想了解单元测试,可以看看PyUnit。
0
通常,我们会先进行单元测试。
然后,我们会写日志信息来帮助找出问题。
我们一般不太依赖调试,因为在一些情况下,比如Python脚本嵌入在更大的产品中时,调试往往会变得很困难。
2
你可以创建一个包装的 wsgi 脚本,并在调试器中运行它。比如说:
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()
你可以在调试器中运行这个脚本,然后用 lighttpd 作为网页应用的前端,配置非常简单,就像这样:
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",
))
)
只需在调试器中运行这个 fcgi wsgi 包装器,设置好你插件中的断点,然后打开网页就可以了。