我要开始工作延伸Trac系统,以适应我们的业务需求有相当数量。 到目前为止,我已经使用的PythonWin和现在的NetBeans 6.5的开发环境 - 这些都不似乎提供调试我的工作插件的任何方式

我完全新的到Python 的所以可能还没有建立开发环境如何可以congfigured得到它的调试。

我失去了一些东西明显?这似乎有点过时不得不求助于打印调试消息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包装,设置在插件中的断点,并打开网页。

其他提示

通常,我们单元测试第一

然后,我们写日志消息来诊断问题。

我们一般不会在很大程度上依赖于调试,因为它往往很难在Python脚本嵌入在一个较大的产品的情况下做的。

我发现 Winpdb 是一个体面蟒调试器。

但由于美国洛特指出,当你的项目被嵌入一个更大的范围内调试器可能不会对你非常有用。

Trac系统包含Python代码很好的例子,用它作为一个准则将有助于避免错误。只是一定要测试你的代码,并经常这样做,因为你是新来的Python ......你会发现你并不需要一个调试器。

有关的单元测试,检查出的PyUnit

我发现它最有用的添加在运行时那些花哨Trac的提示消息框作为调试帮助或跟踪,就像这样:

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)

有时它比事后阅读记录更舒适。虽然它只是如果你正在运行的功能有req ARG工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top