python – 我应该如何调试Trac插件?

我即将开始大量的工作来扩展Trac以满足我们的业务需求.

到目前为止,我已经使用
pythonWin和现在的Netbeans 6.5作为开发环境 – 这些似乎都没有提供任何方式来调试我正在处理的插件.

我是Python的新手,所以可能没有设置开发环境如何将其配置为调试.

我错过了一些明显的东西吗似乎有点过时,不得不求助于将调试消息打印到Trac日志,这就是我现在正在调试的方式.

最佳答案 您可以创建一个包装器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作为Web应用程序的前端,并使用如下所示的简单配置:

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包装器,在插件中设置断点,然后打开网页.

点赞