Jax*_*nBP 2 python error-handling exception-handling
我对使用Python完全不熟悉(我有PHP背景)
我习惯了PHP的错误处理和日志记录.然而,对于Python,我在一个应该工作的非常简单的脚本上得到500错误.
有没有办法打开Python的错误处理?因为500错误并没有告诉我任何事情,除了有些事情是不对的.
我已经在网上寻找答案,但我找不到解决方案应该是非常明显的.
您的问题是询问如何查看错误或异常(当然不是如何处理,当然您也需要处理这些错误),而且从500 errorPHP背景来看,它似乎意味着您正在使用Python进行Web编程.
在Python中有很多方法可以这样做,这里有一些我倾向于使用的方法:
logging模块来记录错误.有许多工具可以帮助你,如Sentry [ 源代码在这里 ].你可以阅读更多的记录在这里.python -m pdb myscript.py在脚本中以调试器模式启动脚本,然后输入c(continue)继续脚本直到发生错误,现在您将能够看到交互式PDB(Python调试器)提示中的状态.并且,为了指出最明显的一个,如果程序崩溃,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
Run Code Online (Sandbox Code Playgroud)
更新:
看起来你没有使用任何框架,并且你是一个主机的背后,从它的外观,并没有告诉你它是如何提供你的Python脚本.现在,由于您只需要在浏览器中查看堆栈跟踪,您可以根据主机使用的内容执行以下操作:
如果您的脚本通过CGI在服务器后面运行,那么您需要做的就是使用Python cgitb模块在HTML页面上打印堆栈跟踪:
import cgitb
cgitb.enable()
Run Code Online (Sandbox Code Playgroud)
但是,您注册的共享主机很可能mod_python与Apache一起使用,因此PythonDebug在Apache配置文件中打开应该在浏览器中打印堆栈跟踪:
PythonDebug On
Run Code Online (Sandbox Code Playgroud)
对于Apache mod_wsgi,有一篇比我在这里总结的更好的文章:mod_wsgi调试技术