10

我似乎无法让 python 模块cgitb在浏览器中输出堆栈跟踪。我在 shell 环境中没有问题。我正在使用 python 2.6 运行 Centos 6。

这是我正在使用的示例简单代码:

import cgitb; cgitb.enable()

print "Content-type: text/html"
print

print 1/0

我收到的是内部服务器错误,而不是打印的详细报告。我尝试过不同的错误类型、不同的浏览器等。

当我没有错误时,python当然可以正常工作。它将在 shell 中打印错误。对于大多数错误异常,cgitb的重点是打印错误而不是在浏览器中返回“内部服务器错误”。基本上我只是想让cgitb在浏览器环境中工作。

有什么建议么?

4

2 回答 2

5

好的,我解决了我的问题,并且 OP 把我带到了它:即使 cgitb 默认输出 HTML,它也不会输出标题!Apache 不喜欢这样,可能会给你一些愚蠢的错误,比如:

<...blablabla>: Response header name '<!--' contains invalid characters, aborting request

它表明,当 Apache 已经遇到一些 HTML 时,它仍在处理标头。在触发错误之前查看 OP 打印的内容。那是一个标题,你需要它。包括空行。

于 2017-11-15T10:33:41.027 回答
-2

我只会引用文档

确保您的脚本可以被“其他人”读取和执行;Unix 文件模式应该是0755八进制(使用chmod 0755 filename)。

确保脚本的第一行包含#!从第 1 列开始,后跟 Python 解释器的路径名,例如:

#!/usr/local/bin/python

于 2015-06-06T07:15:06.443 回答