我即将开始大量的工作扩展Trac以适应我们的业务需求。到目前为止,我已经使用pythonWin和NetBeans6.5作为开发环境--它们似乎都没有提供任何方法来调试我正在开发的插件。
我对Python完全陌生,所以可能还没有设置开发环境,如何让它进行调试。
我漏掉了什么明显的东西吗?不得不将调试消息打印到Trac日志上似乎有点过时,这就是我目前正在调试的方式。
发布于 2009-06-08 13:33:59
您可以创建一个包装器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包装器,在插件中设置断点,并打开网页。
发布于 2009-06-08 10:11:12
通常,我们先进行单元测试。
然后,我们编写日志消息来诊断问题。
我们通常不太依赖调试,因为在Python脚本嵌入更大的产品的情况下,调试通常很难做到。
发布于 2009-06-08 11:56:45
我发现Winpdb是一个不错的python调试器。
但是正如S.Lott所指出的,当您的项目嵌入到更大的项目中时,调试器对您可能不是很有用。
https://stackoverflow.com/questions/964123
复制相似问题