您的问题是询问如何查看错误或异常(而不是如何处理,尽管您当然也需要处理这些错误),并且从500 error
PHP 背景来看,这似乎暗示您正在使用 Python 进行 Web 编程。
在 Python 中有很多方法可以做到这一点,以下是我倾向于使用的一些方法:
- 在生产中使用
logging
模块来记录错误。有很多工具可以帮助你,比如Sentry [这里的源代码]。您可以在此处阅读有关日志记录的更多信息。
- 在开发中,运行您的脚本,
python -m pdb myscript.py
该脚本将以调试器模式启动您的脚本,然后输入c
( continue
) 继续执行脚本,直到出现错误,现在您将能够在交互式 PDB(Python 调试器)提示符中看到状态。
- 在开发中,如果您使用依赖于 WSGI 的框架(或您的脚本),您可以使用基于图形的交互式 JavaScript 浏览器内帮助程序Werkzeug,它允许您在调用堆栈的每个级别进行调试。
而且,要指出最明显的一点,如果程序崩溃,Python 解释器将打印出堆栈跟踪,例如:
→ python -c 'pprint "hello"'
File "<string>", line 1
pprint "hello"
^
SyntaxError: invalid syntax
# print.py is just one line: print 'hello world'
→ python print.py
File "print.py", line 1
pprint 'hello world'
^
SyntaxError: invalid syntax
更新:
似乎您没有使用任何框架,并且您在一个主机后面,从它的外观来看,它并没有告诉您它是如何为您的 Python 脚本提供服务的。现在,由于您只想在浏览器中查看堆栈跟踪,因此您可以根据主机使用的内容执行以下操作:
如果您的脚本通过 CGI 在服务器后面运行,您需要做的就是使用 Python cgitb模块在 HTML 页面上打印堆栈跟踪:
import cgitb
cgitb.enable()
但是,您注册的共享主机很可能mod_python
与 Apache 一起使用,因此PythonDebug
在 Apache 配置文件中打开应该会在浏览器中打印堆栈跟踪:
PythonDebug On
对于 Apache mod_wsgi
,有一篇比我在这里可以总结的更好的文章:mod_wsgi 调试技术